最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

uni-app設(shè)置緩存過期時(shí)間的操作方法

 更新時(shí)間:2024年12月10日 10:17:16   作者:Microi風(fēng)閑  
uni-app 是一個(gè)使用 Vue.js 開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS、Android、Web(響應(yīng)式)、以及各種小程序,本文給大家介紹了uni-app設(shè)置緩存過期時(shí)間的操作方法,需要的朋友可以參考下

一、介紹 

uni-app 是一個(gè)使用 Vue.js 開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS、Android、Web(響應(yīng)式)、以及各種小程序(微信/支付寶/百度/頭條/飛書/QQ/快手/釘釘/淘寶)、快應(yīng)用等多個(gè)平臺。

uni-app在開發(fā)者數(shù)量、案例、跨端抹平度、擴(kuò)展靈活性、性能體驗(yàn)、周邊生態(tài)、學(xué)習(xí)成本、開發(fā)成本等8大關(guān)鍵指標(biāo)上擁有更強(qiáng)的優(yōu)勢。

二、功能框架圖 

從下面 uni-app 功能框架圖可看出, uni-app 在跨平臺的過程中,不犧牲平臺特色,可優(yōu)雅的調(diào)用平臺專有能力,真正做到海納百川、各取所長。

三、前言

uniapp 官方內(nèi)置了通用的內(nèi)置的緩存組件 uni.setStorage(OBJECT) ,但是并沒有內(nèi)置緩存過期時(shí)間配置項(xiàng),我們可以自行來處理實(shí)現(xiàn)。本篇內(nèi)容處理講解如何設(shè)置緩存過期時(shí)間,順便講一下滑動(dòng)緩存的解決方案。

四、官方API 

4.1 uni.setStorage(OBJECT)

將數(shù)據(jù)存儲(chǔ)在本地緩存中指定的 key 中,會(huì)覆蓋掉原來該 key 對應(yīng)的內(nèi)容,這是一個(gè)異步接口。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

OBJECT 參數(shù)說明

參數(shù)名類型必填說明
keyString本地緩存中的指定的 key
dataAny需要存儲(chǔ)的內(nèi)容,只支持原生類型、及能夠通過 JSON.stringify 序列化的對象
successFunction接口調(diào)用成功的回調(diào)函數(shù)
failFunction接口調(diào)用失敗的回調(diào)函數(shù)
completeFunction接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

參數(shù) HarmonyOS Next 兼容性

名稱HarmonyOS Next 兼容性
options-
名稱HarmonyOS Next 兼容性
key-
data-
success-
fail-
complete-

示例

uni.setStorage({
	key: 'storage_key',
	data: 'hello',
	success: function () {
		console.log('success');
	}
});

注意

  • uni-、uni_、dcloud-dcloud_為前綴的key,為系統(tǒng)保留關(guān)鍵前綴。如uni_deviceId、uni_id_token,請開發(fā)者為key命名時(shí)避開這些前綴。

4.2 uni.setStorageSync (KEY,DATA)

將 data 存儲(chǔ)在本地緩存中指定的 key 中,會(huì)覆蓋掉原來該 key 對應(yīng)的內(nèi)容,這是一個(gè)同步接口。

參數(shù)說明

參數(shù)類型必填說明
keyString本地緩存中的指定的 key
dataAny需要存儲(chǔ)的內(nèi)容,只支持原生類型、及能夠通過 JSON.stringify 序列化的對象
try {
	uni.setStorageSync('storage_key', 'hello');
} catch (e) {
	// error
}

4.3 uni.getStorage(OBJECT)

從本地緩存中異步獲取指定 key 對應(yīng)的內(nèi)容。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

OBJECT 參數(shù)說明

參數(shù)名類型必填說明
keyString本地緩存中的指定的 key
successFunction接口調(diào)用的回調(diào)函數(shù),res = {data: key對應(yīng)的內(nèi)容}
failFunction接口調(diào)用失敗的回調(diào)函數(shù)
completeFunction接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

參數(shù) HarmonyOS Next 兼容性

名稱HarmonyOS Next 兼容性
options-
名稱HarmonyOS Next 兼容性
key-
success-
fail-
complete-

GetStorageSuccess 的屬性值

名稱HarmonyOS Next 兼容性
data-

success 返回參數(shù)說明

參數(shù)類型說明
dataAnykey 對應(yīng)的內(nèi)容

示例

uni.getStorage({
	key: 'storage_key',
	success: function (res) {
		console.log(res.data);
	}
});

4.4 uni.getStorageSync(KEY)

從本地緩存中同步獲取指定 key 對應(yīng)的內(nèi)容。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

參數(shù)說明

參數(shù)類型必填說明
keyString本地緩存中的指定的 key

參數(shù) HarmonyOS Next 兼容性

名稱HarmonyOS Next 兼容性
key-

示例

try {
	const value = uni.getStorageSync('storage_key');
	if (value) {
		console.log(value);
	}
} catch (e) {
	// error
}

五、自定義過期時(shí)間

通過上面的官方API文檔也看到了,并沒有緩存過期時(shí)間配置項(xiàng)。那我們自己寫一個(gè)吧。核心原理就是將緩存值改成 object ,然后將時(shí)間戳一并存入緩存,下次使用時(shí)先判斷下時(shí)間戳是否過期。

以下是一個(gè)示例,展示如何設(shè)置緩存并在一定時(shí)間后過期:

// 設(shè)置緩存
function setCache(key, value, expireSeconds) {
  const currentTime = Date.now();
  const expireTime = currentTime + expireSeconds * 1000; // 轉(zhuǎn)換為毫秒
  uni.setStorage({
    key: key,
    data: {
      value: value,
      expireTime: expireTime
    },
    success: function() {
      console.log('緩存設(shè)置成功');
    }
  });
}
 
// 獲取緩存
function getCache(key) {
  const res = uni.getStorageSync(key);
  if (res && res.expireTime > Date.now()) {
    return res.value;
  } else {
    uni.removeStorage({
      key: key,
      success: function() {
        console.log('緩存已過期,已移除');
      }
    });
    return null; // 緩存過期,返回null
  }
}
 
// 使用示例
const key = 'myCacheKey';
const value = 'myCacheValue';
const expireSeconds = 30; // 緩存30秒
setCache(key, value, expireSeconds);
 
// 稍后獲取緩存
const cachedValue = getCache(key);
console.log(cachedValue); // 緩存過期時(shí)會(huì)打印null

六、滑動(dòng)緩存解決方案

首先聲明,在前端做數(shù)據(jù)緩存是 不可控的 ,也就是說 不能保證 數(shù)據(jù)的 實(shí)時(shí)性 。這種場景只適用于那些不經(jīng)常變動(dòng)、實(shí)時(shí)性要求不高的數(shù)據(jù)緩存。

大致流程如下:

1)先判斷數(shù)據(jù)是否已緩存,如果已緩存再判斷緩存是否過期,如果未過期則返回緩存數(shù)據(jù),同時(shí)異步拉取api接口數(shù)據(jù)并做 異步緩存 。

2)如果緩存不存在則同步拉取api接口數(shù)據(jù),順便執(zhí)行 異步緩存 操作。

3)讀取緩存時(shí)要使用 同步緩存 讀取,以保證后續(xù)業(yè)務(wù)的調(diào)用。

4)緩存需要設(shè)置 過期時(shí)間 ,至于過期時(shí)間設(shè)置多久根據(jù)你業(yè)務(wù)需求。

以上就是uni-app設(shè)置緩存過期時(shí)間的操作方法的詳細(xì)內(nèi)容,更多關(guān)于uni-app設(shè)置緩存過期時(shí)間的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript Array Flatten 與遞歸使用介紹

    JavaScript Array Flatten 與遞歸使用介紹

    用 JavaScript 將 [1,2,3,[4,5, [6,7]], [[[8]]]] 這樣一個(gè) Array 變成 [1,2,3,4,5, 6,7,8] 呢?傳說中的 Array Flatten
    2011-10-10
  • JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒的形式

    JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒的形式

    在實(shí)際工作中經(jīng)常會(huì)遇見把秒數(shù)轉(zhuǎn)化為時(shí)分秒的問題,如何處理呢?下面這篇文章主要給大家介紹了關(guān)于JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒形式的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 微信小程序?qū)崿F(xiàn)復(fù)選框效果

    微信小程序?qū)崿F(xiàn)復(fù)選框效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)復(fù)選框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 第一篇初識bootstrap

    第一篇初識bootstrap

    Bootstrap是twitter的工程師在業(yè)余時(shí)間開發(fā)的,是一款目前非常流行的前端框架。本文給大家介紹第一篇初識bootstrap的相關(guān)知識,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • 一文了解JavaScript中call/apply/bind的使用

    一文了解JavaScript中call/apply/bind的使用

    這篇文章主要介紹了一文了解JavaScript中call/apply/bind的使用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • 關(guān)于JSON與JSONP簡單總結(jié)

    關(guān)于JSON與JSONP簡單總結(jié)

    JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。而JSONP(JSON with Padding)是資料格式 JSON 的一種“使用模式”。下面是小編總結(jié)的關(guān)于JSON與JSONP知識,感興趣的朋友一起看下吧
    2016-08-08
  • ES 空值合并運(yùn)算符??與可選鏈?.的使用小結(jié)

    ES 空值合并運(yùn)算符??與可選鏈?.的使用小結(jié)

    本文主要介紹了ES 空值合并運(yùn)算符??與可選鏈?.的使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • js實(shí)現(xiàn)酷炫倒計(jì)時(shí)動(dòng)畫

    js實(shí)現(xiàn)酷炫倒計(jì)時(shí)動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)酷炫倒計(jì)時(shí)動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • mui back 返回刷新頁面的實(shí)例

    mui back 返回刷新頁面的實(shí)例

    下面小編就為大家分享一篇mui back 返回刷新頁面的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 解決Jstree 選中父節(jié)點(diǎn)時(shí)被禁用的子節(jié)點(diǎn)也會(huì)選中的問題

    解決Jstree 選中父節(jié)點(diǎn)時(shí)被禁用的子節(jié)點(diǎn)也會(huì)選中的問題

    下面小編就為大家分享一篇解決Jstree 選中父節(jié)點(diǎn)時(shí)被禁用的子節(jié)點(diǎn)也會(huì)選中的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12

最新評論

邹平县| 当阳市| 和田县| 茶陵县| 铜山县| 隆回县| 桂平市| 樟树市| 宁化县| 忻州市| 隆化县| 怀仁县| 阿荣旗| 个旧市| 元谋县| 陆丰市| 榆树市| 体育| 环江| 随州市| 静安区| 闽清县| 桦川县| 衡东县| 宁晋县| 焦作市| 裕民县| 安吉县| 岳阳市| 千阳县| 同江市| 佛山市| 崇文区| 张家港市| 轮台县| 且末县| 河津市| 安顺市| 海宁市| 泗阳县| 华安县|