91九色国产视频_国产精品视频一区二区高潮_一区二区精品国产_国产专区欧美专区_国产成人avxxxxx在线看_国产精品久久久久久久app_亚洲一区二区三区免费观看_国产精品视频地址_国产精品久久久久久超碰_国产在线视频在线_欧美麻豆久久久久久中文_日韩精品福利视频_免费97视频在线精品国自产拍_中文字幕一区二区三区乱码_欧美日韩午夜爽爽_久久免费观看视频

大學生之家,大學生資訊發布平臺
大學生之家

小程序緩存管理添加規則CacheManager.addRule

    發布時間:2025-04-29    閱讀:
    來源:大學生之家
string CacheManager.addRule(string|RegExp|Object rule)
添加規則。

基礎庫 2.23.0 開始支持,低版本需做兼容處理。
小程序插件:不支持
參數
string|RegExp|Object rule
規則

返回值
string
規則 id

規則說明

支持的規則寫法有字符串、正則和對象三種:

字符串寫法
addRule('/abc'):純 uri 串。
`addRule('GET /abc'):帶方法的 uri 串,除了匹配 uri 外,還會匹配請求方法。如例子中必須是 GET 方法請求才會被匹配。
addRule('/abc/:id'):帶可變部分的 uri 串,id 可以是任意符合標準的字符串,表示這一段可以動態變化。比如/abc/123<code>和/abc/321都會被匹配,而/abc/123/xxx` 因為多了一段,就不會被匹配。
addRule('/abc?aa'):帶 query 參數的 uri 串,包含 aa 參數,值可以為任意值。比如/abc?aa=haha<code>會被匹配,但是/abc就不會被匹配,因為缺少規則中聲明的 aa 參數;不過如果請求是/abc?aa=haha&bb=123`,雖然多帶了 bb 參數,但是因為包含了 aa 參數,所以也可以被匹配。
addRule('/abc?dd=haha'):帶 query 參數的 uri 串,包含 dd 參數且值為 haha。比如/abc?dd=haha<code>和/abc?dd=haha&bb=123會被匹配,而/abc?dd=123` 就不會被匹配,因為規則要求了 dd 參數的值。
以上寫法中的 uri 串如果只有 path 部分,則會取全局 origin 進行補全。比如全局 origin 是 https://weixin.qq.com,而規則是 <code>/abc,則會補全為 https://weixin.qq.com/abc。因此在前面例子中 <code>addRule('/abc') 和 addRule('https://weixin.qq.com/abc') 的寫法效果一致。所以一般情況下如果需要匹配的請求 origin 和全局 origin 一致,則規則中可忽略不寫 orign。
正則寫法
addRule(/\/(abc|cba)$/ig):直接正則匹配請求的 uri,同時會比對請求 origin 和全局 origin 是否一致。
addRule(/^https:\/\/weixin.qq.com\/(abc|cba)$/ig):帶有 orign 部分的正則表達式,則只匹配 uri,不再比對 origin。
對象寫法

使用規則對象,可以更為詳細的描述規則內容。(一般使用規則對象,是為了匹配請求參數)

規則對象:
屬性名    類型    默認值    備注
id    string        規則 id,如果不填則會由基礎庫生成
method    string        請求方法,可選值 GET/POST/PATCH/PUT/DELETE,如果為空則表示前面提到的所有方法都能被匹配到
url    any    必填    uri 匹配規則,可參考規則字符串寫法和正則寫法
maxAge    number    7 * 24 * 60 * 60 * 1000    緩存有效時間,單位為 ms,不填則默認取緩存管理器全局的緩存有效時間
dataSchema    Array<DataRule>        匹配請求參數
其中,dataSchema 用來匹配請求參數(比如 wx.request 的 data),默認可以不填,即不做參數匹配。

dataSchema 的類型是一個 DataRule 對象數組,一個 DataRule 對象描述一個參數,比如一個 wx.request 請求的 data 是 {a: 123, b: 'haha', c: true},你想要用一條規則來匹配其中的 a 和 b 參數,如果 a 是數字且 b 是字符串就能命中該規則,那么就需要在 dataSchema 中補充兩個 DataRule 對象,即 <code>[{name: 'a', schema: {type: 'number'}}, {name: 'b', schema: {type: 'string'}}]。

DataRule 對象:
屬性名    類型    默認值    備注
name    string        需要匹配的參數名
schema    DataSchema/Array<DataSchema>    需要匹配的參數模式,支持數組,表示該參數值有多種模式    
name 表示要匹配的參數名,schema 為 DataSchema 對象,用來描述該參數的類型和值。


一個 DataRule 對象也可以匹配可能擁有多種類型的參數,所以 schema 也支持為 DataSchema 對象數組。比如上述例子中,希望匹配的 a 參數必須是數值或者字符串,那么可以這么寫:{name: 'a', schema: [{type: 'number'}, {type: 'string'}]}。

DataSchema 對象:
屬性名    類型    默認值    備注
type    string        需要匹配的 data 對象的參數類型,string、number、boolean、null、object、any(表示任意類型),同時支持數組模式(數組模式則在類型后面加 [],如 string[] 表示字符串數組)
value    string/regexp/function/Array<DataRule>        需要匹配的 data 對象的參數值,當 type 為基本類型時,可以用 string/regexp 來匹配固定的值,也可以通過 function 來確定值是否匹配,如果傳入的 type 是 object,那么表示需要嵌套匹配值是否正確,可以傳入 Array
type 參數表示要匹配的參數類型,value 表示要匹配的參數值。其中 value 支持多種寫法,不同寫法有如下匹配方式:

字符串寫法:直接判值的字符串形式是否和給定字符串一樣,比如 value 值為 123,就要求參數值必須為 123 才能與之匹配。
正則寫法:直接判值的字符串形式是否能被正則匹配,比如 value 值為 /\d+/ig,就要求參數值必須為數字,如果參數值為 <code>abc 則不會被匹配。
函數寫法:在匹配時會調用用戶傳入的函數,交由用戶判斷是否匹配。
DataRule 數組寫法:當參數類型為對象時,那么字符串寫法和正則寫法就無法使用,需要傳入 DataRule 數組來進行匹配,即通過嵌套 DataRule 數組的方式來匹配嵌套的對象。
示例代碼

const ruleId = cacheManager.addRule({
  id: 'haha-rule',
  method: 'GET',
  url: '/haha',
  maxAge: 123455,
  dataSchema: [
    // data 字段的匹配,默認為空,表示不匹配
    // 類型可以是:string、number、boolean、null、object、any(表示任意類型均可),以及這些類型的數組表示方式
    {name: 'aaa', schema: {type: 'string'}}, // 類型為 string
    {name: 'bbb', schema: [{type: 'number'}, {type: 'string'}]}, // 類型為 number, string
    {name: 'ccc', schema: {type: 'string', value: 'abc'}}, // 值為 abc
    {name: 'ddd', schema: {type: 'string', value: /(abc|cba)/ig}}, // 值符合該正則匹配,如果該值不是字符串類型,則會被嘗試轉成字符串后再進行比較
    {name: 'ddd', schema: {type: 'string', value: val => val === '123'}}, // 傳入函數來校驗值
    {name: 'eee', schema: {type: 'object', value: [{ // 類型為對象,則通過嵌套的方式來逐層校驗
      name: 'aaa', schema: {type: 'string'},
      // ...
      // 嵌套 dataSchema,同上面的方式一樣來匹配嵌套的對象
    }]}},
    {name: 'fff', schema: {type: 'string[]'}}, // 類型為 string 數組
    {name: 'ggg', schema: {type: 'any'}}, // 類型為任意類型
    {name: 'hhh', schema: {type: 'any[]'}}, // 類型為任意類型的數組
  }],
})
補充說明

用戶可以添加多條規則,每條規則都會去解析網絡請求,然后判斷是否命中規則。假設有多條規則命中,則取第一條命中的規則。

緩存覆蓋
不同的網絡請求也可能命中同一條規則,所以每條規則可能對應多個緩存。每條規則會有一個規則 id,每個緩存會有一個緩存 id,一個規則 id 可能對應多個緩存 id,而緩存管理器的緩存存儲是基于緩存 id 標識的,如果兩個不同的請求生成了同樣的緩存 id,那么后發生的請求結果緩存會覆蓋前者。因此使用時需要思考緩存的覆蓋情況,目前緩存 id 生成方式如下:

規則使用字符串寫法:那么按 method + url + 規則中聲明的 query 參數來生成緩存 id。
需要注意的是這里不使用真實請求中的 query 參數來生成緩存 id,而是使用規則中匹配到的 query 來生成緩存 id。比如規則是 /abc?aa=123,請求是 GET 方法的 <code>/abc?aa=123&bb=123,那么就會基于 GET /abc?aa=123 來生成緩存 id。而規則里沒有聲明 <code>bb=123,所以 bb 參數不會被納入緩存 id 的生成基準。
規則使用正則寫法:那么只按 method + url 生成緩存 id,不考慮 query 參數。
規則使用對象寫法:如果規則對象中的 url 是字符串寫法,那么按 method + url + 規則中聲明的 query 參數 + 規則中 dataSchema 聲明的請求參數來生成緩存 id;如果規則對象中的 url 是正則寫法,那么按 method + url + 規則中 dataSchema 聲明的請求參數來生成緩存 id。
生成緩存 id 時沒有使用請求中完整的 query 參數或者請求參數來作為基準,是考慮到很多請求可能會帶上 token 或時間戳等參數。因為此參數存在不確定性,會導致每次請求生成的緩存 id 都不同,進而導致緩存命中率下降,故采取規則中聲明的 query 參數和 dataSchema 聲明的請求參數來作為生成緩存 id 的基準。
計算機學習推薦
  • 掃一掃 分享悅讀 ➤
  • 掃碼可以分享到微信 qq朋友圈
計算機學習熱點
91九色国产视频_国产精品视频一区二区高潮_一区二区精品国产_国产专区欧美专区_国产成人avxxxxx在线看_国产精品久久久久久久app_亚洲一区二区三区免费观看_国产精品视频地址_国产精品久久久久久超碰_国产在线视频在线_欧美麻豆久久久久久中文_日韩精品福利视频_免费97视频在线精品国自产拍_中文字幕一区二区三区乱码_欧美日韩午夜爽爽_久久免费观看视频
九九九九免费视频| 亚洲精品欧洲精品| 97久久久免费福利网址| 欧美午夜精品久久久久久蜜欧美亚洲第一页| 国产精品久久999| 久久精品国产欧美亚洲人人爽| 亚洲中文字幕无码中文字| 国产毛片久久久久久国产毛片| 亚洲一区二区三区乱码aⅴ| 久久久国产一区二区| 国产精品视频网站在线观看| 日韩中文字幕不卡视频| 国产私拍一区| 久久精品成人欧美大片| 欧美一区少妇| 欧美国产激情视频| 精品毛片久久久久久| 久久国产色av免费观看| 日本不卡视频在线播放| 国产精品中文字幕久久久| 国产精品一区在线播放| 久久精品一本久久99精品| 日韩中文字幕网站| 国产精品av免费在线观看| 日韩欧美一区二| 国产精品美女在线| 亚洲永久免费观看| 色综合久久久久久中文网| 午夜精品一区二区三区在线播放| 欧美激情亚洲另类| 欧美日韩亚洲一区二区三区在线观看| 国产色综合天天综合网| 欧美,日韩,国产在线| 无码人妻精品一区二区蜜桃百度| 亚洲欧洲三级| 99在线影院| 国产va免费精品高清在线| 无码无遮挡又大又爽又黄的视频| 久久久极品av| 国产日韩亚洲精品| 欧美日韩精品免费看| 国产日产久久高清欧美一区| 蜜桃av噜噜一区二区三区| 亚洲不卡中文字幕| 国产成人精品免高潮在线观看| 亚洲 国产 日韩 综合一区| 国产精品久久网| 国产精品毛片a∨一区二区三区|国| 国产美女精品在线观看| 91久久久久久久久久久久久| 91精品国产自产在线| 一区二区视频在线免费| 痴汉一区二区三区| 亚洲永久免费观看| 日韩欧美视频第二区| 91精品国产综合久久久久久久久| 手机在线观看国产精品| 国产一区高清视频| 国产素人在线观看| 91久久精品国产91性色| 一区中文字幕在线观看| 日本精品视频一区| 精品久久蜜桃| 91精品久久久久久久久久久久久| 欧美日韩国产高清视频| 欧美激情亚洲另类| 国产不卡在线观看| 欧美一级视频一区二区| 激情六月天婷婷| 国产精品极品尤物在线观看| 国产精品美女久久久久久免费| 国产在线精品自拍| 日韩视频中文字幕| 88国产精品欧美一区二区三区| 日本在线播放一区| 性高潮久久久久久久久| 欧美乱妇高清无乱码| 欧美日韩亚洲一区二区三区四区| 精品无码一区二区三区爱欲| 狠狠精品干练久久久无码中文字幕| 久久国产精品久久久久久久久久| 久久9精品区-无套内射无码| 国产精品自拍首页| 奇米888一区二区三区| 一区二区在线观| 国产在线播放一区二区| 日本不卡一区二区三区在线观看| 国产精品中文字幕久久久| 99视频在线播放| 欧美综合第一页| 国产高清在线一区| 国产女精品视频网站免费| 国产精品美女免费看| 国产成人精品电影久久久| 久久久久久久av| 欧美视频在线播放一区| 久久亚洲免费| 91久久久久久久一区二区| 国产欧美日韩综合精品| 国产成人精品在线播放| 天天爽天天狠久久久| 欧美精品性视频| 国产成人精品综合久久久| 91高潮在线观看| 国产精品久久久久久久久粉嫩av| 精品国内产的精品视频在线观看| 精品无人区一区二区三区| 久久精品视频亚洲| 视频一区二区在线| 亚洲欧洲精品一区| 成人精品一区二区三区电影免费| 久久久久久九九| 国产aⅴ精品一区二区三区黄| 日本一区二区三不卡| 国产精品成人aaaaa网站| 91精品视频在线免费观看| 日本丰满少妇黄大片在线观看| 亚洲一区二区三区av无码| 亚洲日本一区二区三区在线不卡| 国产区精品在线观看| 一区二区三区四区视频在线观看| 欧美中文字幕在线观看视频| 性欧美精品一区二区三区在线播放V| 久久天天躁狠狠躁夜夜av| 免费毛片一区二区三区久久久| 亚洲专区中文字幕| 欧美精品久久久久久久免费观看| 日韩中文字幕av| 日本精品一区二区三区在线播放视频| 日本精品久久久久中文字幕| 欧美亚洲第一页| 国产日韩欧美自拍| 日本最新高清不卡中文字幕V| 无码人妻aⅴ一区二区三区日本| 国产精品免费视频xxxx| 日韩久久一级片| 久久99精品久久久久久噜噜| 日韩在线视频导航V| 欧美国产日韩在线播放| 久久精品亚洲精品| 欧美大片欧美激情性色a∨久久| 亚洲精品自在在线观看| 欧美精品亚洲| 国产精品欧美激情| 欧美一区二区三区在线免费观看| 欧美在线视频二区| 国产精品91一区| 国产欧亚日韩视频| 欧美精品999| 欧美日本亚洲视频| 久久精品99无色码中文字幕| 久久久欧美精品| 欧美久久在线| 激情视频综合网| 99久久99| 亚洲伊人久久综合| 国产精品免费观看久久| 国产欧美日韩视频| 日韩有码在线观看| 国产激情综合五月久久| 国产欧美日韩中文字幕在线| 国产精品国语对白| 久久久久亚洲精品| 一区二区三区在线观看www| 国产在线一区二区三区四区| 不卡av在线网站| 色综合天天狠天天透天天伊人| 日韩中文字幕在线视频观看| 国产精品色悠悠| 亚洲国产欧美不卡在线观看| 99久久自偷自偷国产精品不卡| 国产va免费精品高清在线观看| 精品国模在线视频| 日韩一区二区三区资源| 欧美高清性xxxxhd| 国产精品欧美亚洲777777| 日韩一级特黄毛片| 99久久久精品免费观看国产| 日韩中文视频免费在线观看| 久久在线中文字幕| 国产成a人亚洲精v品在线观看| 欧洲精品视频在线| 一区二区免费在线观看| 日韩一级免费在线观看| 亚洲色欲综合一区二区三区| 亚洲a中文字幕| 欧美中文字幕在线观看视频| 久久国产精品视频在线观看| 久久精品国产欧美激情| 国产精品自产拍在线观看中文| 久久久免费在线观看| 91久久久久久久| 91国产精品视频在线| 午夜精品一区二区三区在线播放| 国产国语刺激对白av不卡| 99精品免费在线观看| 国产精品69久久久| 九色91视频| 久99久视频| 国产精品日韩二区| 日韩免费av片在线观看| 国产欧美一区二区三区在线看| 欧美日韩精品免费观看视一区二区| 久久久国产精品一区| 久久99影院| 日本一区二区三区免费看| 日韩一区二区三区国产| 日韩中文字幕国产精品| 超碰97国产在线| 欧美日韩亚洲一区二区三区四区| 中文字幕日韩精品久久| 国产精品一区二区免费在线观看| 久久999免费视频| 日本一区二区三区视频免费看| 久久不射电影网| 国产精品视频在线免费观看| 午夜免费电影一区在线观看| 国内精品久久久久久久果冻传媒| 日本一区二区三区视频免费看| 国产精品丝袜久久久久久消防器材| 国产精品吹潮在线观看| 国产精品免费在线| 中文字幕一区二区三区最新| 国产v综合v亚洲欧美久久| 久久久久久久久91| 国产婷婷一区二区三区| 91精品视频在线免费观看| 日韩免费一区二区三区| 一区二区免费在线观看| www日韩视频| 国产精品av免费在线观看| 欧美在线视频a| 欧美久久久精品| 国产精品麻豆va在线播放| 日韩在线中文视频| 久久韩国免费视频| 国产精品久久久久影院日本| zzjj国产精品一区二区| 日本高清视频一区二区三区| av在线亚洲男人的天堂| 国产精品日日做人人爱| 九九热精品在线| 国产精品久久久久久免费观看| 日韩欧美第二区在线观看| 97久久精品国产| 97精品国产97久久久久久| 日本精品视频在线播放| 亚洲一区二区三区av无码| 欧美在线观看黄| 国产精品美女av| 日韩在线精品视频| 国产欧美日韩小视频| 日本不卡一区二区三区在线观看| 久久久精品影院| 国外色69视频在线观看| 日产国产精品精品a∨| 俺去了亚洲欧美日韩| 欧美亚洲另类制服自拍| 91超碰中文字幕久久精品| 欧美精品卡一卡二| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲免费视频一区| 人妻少妇精品久久| 国产欧美一区二区三区视频| 国产日韩在线精品av| 精品人妻少妇一区二区| 99久久久精品免费观看国产| 色综合久久中文字幕综合网小说| 国产精品999999| 国产免费色视频| 日韩欧美在线一区二区| 日韩av成人在线| 国产精品高清免费在线观看| 欧美综合在线第二页| 国产精品一区在线免费观看| 亚洲精品中文字幕在线| 亚州成人av在线| 国产在线精品一区二区三区| 一区二区三区四区视频在线观看| 精品国产一区二区三区在线| 国产中文字幕在线免费观看| 日本欧美精品久久久| 国产精品视频久久久| aaa级精品久久久国产片| 国产在线拍偷自揄拍精品| 亚洲自拍欧美另类| 国产在线拍偷自揄拍精品| 日韩一区二区在线视频| 成人国产精品av| 国产精品福利在线观看网址| 99精品一级欧美片免费播放| 国产日韩视频在线播放| 久久亚洲精品毛片| 欧美日韩一区在线视频| 国产精品免费观看高清| 白嫩少妇丰满一区二区| 国产精品美女视频网站| 久久亚洲精品网站| www国产亚洲精品| 国产中文字幕视频在线观看| www.av中文字幕| 91久久久国产精品| 日本精品二区| 国产中文字幕在线免费观看| 日本三日本三级少妇三级66| 国产精品自产拍在线观看中文| 日韩欧美精品免费| 久久99精品久久久水蜜桃| 国产欧美日韩免费看aⅴ视频| 国产精品视频导航| 日韩中文字幕网| 国产精品久久久久7777| 国产精品一区在线观看| 亚洲国产日韩欧美| 久久视频精品在线| 欧美日本韩国一区二区三区| 日韩在线精品视频| 免费观看亚洲视频| 久久精品小视频| 韩国国内大量揄拍精品视频| 国产精品一区二区性色av| 欧美精品自拍视频| 日本精品国语自产拍在线观看| 午夜精品蜜臀一区二区三区免费| 国产精品人成电影在线观看| 久久久在线视频| 国产精品亚洲激情| 欧美日韩视频在线一区二区观看视频|