影片直播原始碼,不同業務場景需選擇不同方案去快取資料
├── src │ ├── modules │ │ ├── constant │ │ │ └── cache.ts // 快取相關 │ │ │ └── index.ts // 出口
// cache.ts export enum CacheKeyEnum { USER_INFO = 'user-info', // ... } // index.ts export * from './cache' // 使用 import { CacheKeyEnum } from '~/modules/constant' function getUserCacheInfo() { return localStorage.getItem(CacheKeyEnum.USER_INFO) }
import { useStorage } from '@vueuse/core' // bind object const state = useStorage('my-store', { hello: 'hi', greeting: 'Hello' }) // bind boolean const flag = useStorage('my-flag', true) // returns Ref<boolean> // bind number const count = useStorage('my-count', 0) // returns Ref<number> // bind string with SessionStorage const id = useStorage('my-id', 'some-string-id', sessionStorage) // returns Ref<string> // delete data from storage state.value = null
import {useLocalStorage} from 'react-use'; const Demo = () => { const [value, setValue] = useLocalStorage('my-key', 'foo'); return ( <div> <div>Value: {value}</div> <button onClick={() => setValue('bar')}>bar</button> <button onClick={() => setValue('baz')}>baz</button> </div> ); };
useLocalStorage(key); useLocalStorage(key, initialValue); useLocalStorage(key, initialValue, raw);
import localForage from "localforage"; // 你的專案ID const PID = "your project's ID" // 例項 let lfInstance: LocalForage /** 初始化LF */ export function initLFInstance(): LocalForage { if (!lfInstance) lfInstance = localforage.createInstance({ name: PID }) return lfInstance } /** * 設定或讀取快取資訊, null: 刪除,傳參:更新,不傳參:獲取 * @param key storage key * @param data storage data * @returns storage data | null */ export function useIndexedDB<T, K extends string>(key: K, data?: T | null): Promise<T | null> { if (!lfInstance) { console.error('lfInstance is not initialized') return Promise.resolve(null) } else { return data === null ? (lfInstance!.removeItem(key) as unknown as Promise<null>) : data === undefined ? lfInstance!.getItem(key) : lfInstance!.setItem(key, data) } }
import type { Table } from 'dexie' import Dexie from 'dexie' import { IndexedDBKeys } from '../constant' // 使用者資料表型別 interface IUserData { id?: number name: string phone: string age: number } export class AppDataDexie extends Dexie { userDataDB!: Table<IUserData> constructor() { super(IndexedDBKeys.UserData) this.version(1).stores({ userDataDB: '++id, name, phone, age', }) } } /** 構建DB例項 */ const db = new AppDataDexie() /** 匯出使用者db操作 */ export const userDB = db.userDataDB
import { userDB } from './db' userDB.add({ id: 1, name: 'senar', phone: 'xxxx', age: 22 }) // ...更多操作可以檢視文件 // https://dexie.org/docs/Tutorial/Getting-started
// 檢測localStorage使用空間 function sieOfLS() { return Object.entries(localStorage).map(v => v.join('')).join('').length; } // 檢測sessionStorage使用空間 function sieOfSS() { return Object.entries(sessionStorage).map(v => v.join('')).join('').length; }
export async function getCacheUsage() { const { quota, usage } = await navigator.storage.estimate() const remainingSpace = quota! - usage! const unit = 1073741824 const text = `已使用:${(usage ?? 0) / unit} GB, 剩餘可用快取空間:${remainingSpace / unit} GB` console.info(text) return remainingSpace }
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69978258/viewspace-3012433/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 面對不同的業務場景,選擇零碼還是低碼?
- 不同業務場景使用不同的map
- 直播影片美顏SDK在不同場景下的表現效果分析
- 不同場景下 MySQL 的遷移方案MySql
- 影片直播原始碼,圖片選擇器ImagePicker原始碼
- 直播場景影片和特效解決方案特效
- [原]不同場景下MySQL的遷移方案MySql
- [譯] Java 資料流的不同應用場景Java
- 選擇排序中交換資料的不同方式出現的不同結果排序
- 分散式快取--快取與資料庫強一致場景下的方案分散式快取資料庫
- lodash原始碼分析之快取方式的選擇原始碼快取
- 直播間原始碼,透過Redis實現資料快取原始碼Redis快取
- 直播商城原始碼如何實現資料的單項選擇原始碼
- 直播app原始碼,資料庫多資料來源自動選擇實現APP原始碼資料庫
- 短影片全套原始碼,解決快取擊穿的常用方案原始碼快取
- 不同性別玩家對於遊戲環境的不同選擇遊戲
- 表單請求 統一欄位不同場景不同處理
- Spring Boot應用中如何動態指定資料庫,實現不同使用者不同資料庫的場景Spring Boot資料庫
- 小程式直播,影片號直播兩者有哪些不同之處
- 電視盒子看電視直播卡?不同問題不同解決方案
- 資料庫技術方案與業務場景的深入融合資料庫
- 如何根據不同業務場景調節 HPA 擴縮容靈敏度
- Netty的原始碼分析和業務場景Netty原始碼
- 電話機器人在不同的行業有不同的應用場景和不同的效果機器人行業
- insert的不同場景效能比較
- Dcat Admin from 表單 點選不同型別展示不同資料型別
- 直播帶貨app原始碼,獲取直播影片的第一幀APP原始碼
- 網頁點選選擇設定文字不同顏色程式碼例項網頁
- 直播帶貨原始碼,日期時間選擇器 選擇範圍限制原始碼
- 視訊直播app原始碼,不同分類頂部背景色APP原始碼
- 乾貨:不同場景容器內獲取客戶端源IP的方法客戶端
- heartbeat心跳線方案及生產場景選擇建議
- 求相同物料描述不同料號的原始碼原始碼
- 巧用列舉來處理UI中顯示值與業務值不同的場景UI
- 直播預告(不同效能測試場景科普)(免費,大家都可以參加)
- 深度解析HarmonyOS SDK實況窗服務原始碼,Get不同場景下的多種模板原始碼
- 資料遷移方案選擇
- 在選擇短影片直播系統原始碼看這幾點,後期可省心省力原始碼