Compare commits
No commits in common. "6f267109a4536093c59cae408a031de69052e765" and "06479610f9464218f666a9645970ce35cccbb0cd" have entirely different histories.
6f267109a4
...
06479610f9
14
demo.html
14
demo.html
@ -1,14 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="zh">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>DEMO</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<script type="module">
|
|
||||||
import './src/store.js'
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -22,7 +22,6 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"express-ws": "^5.0.2",
|
"express-ws": "^5.0.2",
|
||||||
"idb": "^7.1.1",
|
|
||||||
"node-turn": "^0.0.6"
|
"node-turn": "^0.0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
// 通信
|
|
@ -17,7 +17,7 @@ export default class IndexedDB {
|
|||||||
}
|
}
|
||||||
request.onupgradeneeded = (event) => {
|
request.onupgradeneeded = (event) => {
|
||||||
const db = event.target.result
|
const db = event.target.result
|
||||||
if (!db.objectStoreNames.contains(name)) {
|
if (!db.objectStoreNames.contains('todo')) {
|
||||||
db.createObjectStore(name, { keyPath: 'id' })
|
db.createObjectStore(name, { keyPath: 'id' })
|
||||||
console.log('store created:', name)
|
console.log('store created:', name)
|
||||||
}
|
}
|
||||||
|
15
src/main.js
15
src/main.js
@ -1,4 +1,5 @@
|
|||||||
import 'virtual:windi.css'
|
import 'virtual:windi.css'
|
||||||
|
//import 'virtual:windi-devtools'
|
||||||
|
|
||||||
import IndexedDB from './indexeddb.js'
|
import IndexedDB from './indexeddb.js'
|
||||||
import MusicList from './music.js'
|
import MusicList from './music.js'
|
||||||
@ -18,13 +19,15 @@ function appendBuffer(buffer1, buffer2) {
|
|||||||
return tmp.buffer
|
return tmp.buffer
|
||||||
}
|
}
|
||||||
|
|
||||||
// 读取本地音乐列表并标识为缓存状态(本地缓存)
|
//// 读取本地图像
|
||||||
const database = new IndexedDB('musicDatabase', 1)
|
//const imageStore = new IndexedDB('musicDatabase', 1, 'imageObjectStore')
|
||||||
await database.store('musicObjectStore') // 音乐(为什么会用这么丑的格式呢)
|
//await imageStore.open()
|
||||||
//await database.store('imageObjectStore') // 图像(为什么会用这么丑的格式呢)
|
|
||||||
//await database.store('chatsObjectStore') // 聊天室
|
|
||||||
|
|
||||||
// 读取本地音乐列表并标识为缓存状态(本地缓存)
|
// 读取本地音乐列表并标识为缓存状态(本地缓存)
|
||||||
|
const database = new IndexedDB('musicDatabase', 1)
|
||||||
|
const musicStore = await database.store('musicObjectStore')
|
||||||
|
|
||||||
|
//// 读取本地音乐列表并标识为缓存状态(本地缓存)
|
||||||
const list = (await database.getAll('musicObjectStore')).map(item => {
|
const list = (await database.getAll('musicObjectStore')).map(item => {
|
||||||
return { save: true, ...item }
|
return { save: true, ...item }
|
||||||
})
|
})
|
||||||
@ -33,6 +36,7 @@ const list = (await database.getAll('musicObjectStore')).map(item => {
|
|||||||
const name = localStorage.getItem('username') ?? '匿'
|
const name = localStorage.getItem('username') ?? '匿'
|
||||||
const avatar = localStorage.getItem('avatar') ?? '/favicon.ico'
|
const avatar = localStorage.getItem('avatar') ?? '/favicon.ico'
|
||||||
|
|
||||||
|
|
||||||
// 初始化客户端列表
|
// 初始化客户端列表
|
||||||
const clientList = new ClientList({
|
const clientList = new ClientList({
|
||||||
name,
|
name,
|
||||||
@ -52,6 +56,7 @@ const clientList = new ClientList({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 初始化音乐列表(加入本地缓存)
|
// 初始化音乐列表(加入本地缓存)
|
||||||
const musicList = new MusicList({
|
const musicList = new MusicList({
|
||||||
list,
|
list,
|
||||||
|
53
src/store.js
53
src/store.js
@ -1,53 +0,0 @@
|
|||||||
// 使用封装为支持异步的 IndexedDB
|
|
||||||
import { openDB, deleteDB, wrap, unwrap } from 'idb'
|
|
||||||
const storenames = ['music', 'chat', 'user']
|
|
||||||
const database = await openDB('database', 1, {
|
|
||||||
upgrade(db) {
|
|
||||||
storenames.forEach(name => db.createObjectStore(name, { keyPath: 'id' }))
|
|
||||||
console.log('store created:', storenames)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
export class Store {
|
|
||||||
constructor(data) {
|
|
||||||
this.name = data.name
|
|
||||||
this.info = data.info
|
|
||||||
}
|
|
||||||
|
|
||||||
create(data) {
|
|
||||||
const id = window.crypto.randomUUID()
|
|
||||||
return { id, ...data }
|
|
||||||
}
|
|
||||||
|
|
||||||
delete(id) {}
|
|
||||||
|
|
||||||
query() {}
|
|
||||||
}
|
|
||||||
|
|
||||||
export const musicStore = new Store({
|
|
||||||
name: '音乐(资源类型)',
|
|
||||||
info: '音乐(类型说明)',
|
|
||||||
存储时间: 1000 * 60 * 60 * 24 * 7, // 7天不使用的资源将被删除
|
|
||||||
list: [{
|
|
||||||
id: 'uuid',
|
|
||||||
name: 'Dear big sisterremix ver.mp3',
|
|
||||||
arrayBuffer: 'ArrayBuffer',
|
|
||||||
createdAt: 1580000000000, // 创建时间
|
|
||||||
updatedAt: 1580000000000, // 更新时间
|
|
||||||
lastUsedAt: 1580000000000, // 最后使用时间
|
|
||||||
}]
|
|
||||||
})
|
|
||||||
|
|
||||||
export const chatStore = new Store({
|
|
||||||
name: '聊天(资源类型)',
|
|
||||||
info: '聊天(类型说明)',
|
|
||||||
存储时间: 1000 * 60 * 60 * 24 * 7, // 7天不使用的资源将被删除
|
|
||||||
list: [{
|
|
||||||
id: 'uuid',
|
|
||||||
name: 'Dear big sisterremix ver.mp3',
|
|
||||||
arrayBuffer: 'ArrayBuffer',
|
|
||||||
createdAt: 1580000000000, // 创建时间
|
|
||||||
updatedAt: 1580000000000, // 更新时间
|
|
||||||
lastUsedAt: 1580000000000, // 最后使用时间
|
|
||||||
}]
|
|
||||||
})
|
|
Loading…
Reference in New Issue
Block a user