rstoreincjs本地存儲(chǔ)和增量更新
**js本地存儲(chǔ)和增量更新requirejs插件使用**
----------------------------
**用增量更新這個(gè)算法寫(xiě)了一個(gè)requirejs插件storeinc,使用方法如下:**
**首先使用修改后的r.js來(lái)進(jìn)行混淆打包,構(gòu)建配置如下(請(qǐng)看js/requirejs下的build.js):**
({
appDir: "../demo/js",
baseUrl: "./",
dir: "../demo/dist",//不走增量更新的文件存放路徑
paths: {
log: "a",
storeinc:"../storeinc"http://這里插件
},
storeinc: true,//說(shuō)明走storeinc插件
storedir: "../demo/storeincdist",//混淆后的js存放路徑,包括增量文件
lastver:"2", //上一個(gè)版本號(hào),如果沒(méi)有說(shuō)明是第一次打包
ver:'3',//新版版本號(hào)
chunkSize:12,//增量更新塊號(hào)
modules: [
{
name: "test",
exclude: [
"log","b","c","d","storeinc"
]
},
{
name: "log",
exclude: [
"storeinc"
]
},
{
name: "b",
exclude: [
"storeinc","log"
]
},
]
})
**運(yùn)行node r.js -o build.js**
**第一次運(yùn)行時(shí):**
lastver:"1", //上一個(gè)版本號(hào),如果沒(méi)有說(shuō)明是第一次打包
ver:'2',//新版版本號(hào)
**然后到j(luò)s目錄修改各個(gè)源文件,第二次運(yùn)行時(shí):**
lastver:"2", //上一個(gè)版本號(hào),如果沒(méi)有說(shuō)明是第一次打包
ver:'3',//新版版本號(hào)
**然后在index.html里面加入如下代碼(請(qǐng)看js/requirejs下的index.html):**
//主資源下載,記住storeinc!前綴來(lái)啟用插件
另外需要在業(yè)務(wù)里的各個(gè)依賴前都加上storeinc!如test.js:
require(['storeinc!log','storeinc!c','storeinc!d'], function (log, modC, modD) {
log.write('test3 run!!');
log.write('module c\'s name is ' + modC.name);
log.write('module d\'s name is ' + modD.name);
});
**接下來(lái)看下效果:**
**第一次我們把index.html里的ver項(xiàng)配置設(shè)為2,然后訪問(wèn)index.html,發(fā)現(xiàn)訪問(wèn)的是test-2.js等版本為2的js**
**第二次我們把index.html里的ver項(xiàng)配置設(shè)為3,說(shuō)明這次需要的是版本為3的內(nèi)容,發(fā)現(xiàn)訪問(wèn)的是test-2_3.js**
**說(shuō)明訪問(wèn)的是增量文件,已經(jīng)達(dá)到增量更新的目的**
