rstoreinc

js本地存储和增量更新
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 国产
投 递 者 阎庆
操作系统 跨平台
开源组织 腾讯
适用人群 未知
 软件概览

**js本地存储和增量更新requirejs插件使用**
----------------------------

**用增量更新这个算法写了一个requirejs插件storeinc,使用方法如下:**
**首先使用修改后的r.js来进行混淆打包,构建配置如下(请看js/requirejs下的build.js):**

    ({
        appDir: "../demo/js",
        baseUrl: "./",
        dir: "../demo/dist",//不走增量更新的文件存放路径
        paths: {
            log: "a",
            storeinc:"../storeinc"//这里插件
        },
        storeinc: true,//说明走storeinc插件
        storedir: "../demo/storeincdist",//混淆后的js存放路径,包括增量文件
        lastver:"2", //上一个版本号,如果没有说明是第一次打包
        ver:'3',//新版版本号
        chunkSize:12,//增量更新块号
        modules: [
            {
                name: "test",
                exclude: [
                    "log","b","c","d","storeinc"
                ]
            },
            {
                name: "log",
                exclude: [
                   "storeinc"
                ]
            },
            {
                name: "b",
                exclude: [
                    "storeinc","log"
                ]
            },
        ]
    
    })


**运行node r.js -o build.js**

**第一次运行时:**
    lastver:"1", //上一个版本号,如果没有说明是第一次打包
    ver:'2',//新版版本号


**然后到js目录修改各个源文件,第二次运行时:**
    lastver:"2", //上一个版本号,如果没有说明是第一次打包
    ver:'3',//新版版本号
  

**然后在index.html里面加入如下代码(请看js/requirejs下的index.html):**
 

 


    //主资源下载,记住storeinc!前缀来启用插件
   


   




另外需要在业务里的各个依赖前都加上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);
    });


**接下来看下效果:**
**第一次我们把index.html里的ver项配置设为2,然后访问index.html,发现访问的是test-2.js等版本为2的js**
**第二次我们把index.html里的ver项配置设为3,说明这次需要的是版本为3的内容,发现访问的是test-2_3.js**
**说明访问的是增量文件,已经达到增量更新的目的**
  

 相关资料
  • localStorage 本地存储 存储针对QQ帐号隔离 数据存储于本地文件中。游戏结束后不会被删除 函数 key( index) 获取对应索引的key 手q 版本7.8.5 参数 参数名 类型 说明 index number 索引值 返回值 类型 说明 string 说明 示例 var stringKey = BK.localStorage.key(0); getItem( key) 获取ke

  • 本地存储提供了localstore和sessionstore两个类。localstore使用本地文件持久化数据,因此该类存储的数据不会失效。sessionstore存储的数据会在插件运行结束时清空,因此有效期为插件运行期。localstore和sessionstore的API接口一致。 set QN.localstore.set({ query: { key: 'name'

  • 我尝试使用 DB2 存储过程更改表。以下是我的代码。我在更改查询中发现了问题。但是同样的查询在 DB2 命令行编辑器中完美地执行了。我想使用存储过程运行相同的查询。请帮帮我。 错误:在“NTITY(以 69 开头)”之后发现意外的标记“语句结尾”。预期的令牌可能包括:“)”...SQLCODE=-104,SQL 状态=42601,驱动程序=3.58.81

  • 如果我不在合适的StackExchange论坛,请建议我在哪里提问: 我在一家公司工作,他编写了处理敏感数据的软件。为了防止软件被复制(软件盗版),很久以前就决定使用许可证制度。 这个系统运行良好,但对我的公司和客户来说都是一个很大的负担,因此我正在寻找其他方法。 我发现的一种方法是SaaS,但我看到了一个巨大的缺点:Saas在互联网上工作,这意味着本地数据被上传到云上(因此是互联网),这让客户感

  • 我仍在试图理解rxjs和observables和BehaviorSubject。我想做的是,将BehaviorSubject和LocalStorage结合起来,这样当一个特定的LocalStorage变量发生变化时,所有组件都会得到通知。 例如,考虑以下场景。 > 有两个组件Component1和Component2。 这两个组件都在Local存储中查找一个名为Component1和Compone

  • 所以。烦人。 为简洁起见编辑: 类似问题的答案state将修复问题,但我做错了吗?因为它说它不匹配任何文件?也许是因为我运行了git重置?

  • 问题内容: 除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)? 问题答案: localStorage和sessionStorage都扩展了Storage。除了的预期的“非持久性”外,它们之间没有区别。 也就是说,存储在中的数据将 一直保留到明确删除为止 。所做的更改将被保存,并且可用于当前和将来对该站点的所有访问。 对于, 更改仅在每个选项卡上可用

  • 问题内容: 我想通过将所有Cookie移到本地存储中来减少其加载时间,因为它们似乎具有相同的功能。除了明显的兼容性问题以外,使用本地存储替换cookie功能是否有任何利弊(尤其是性能方面的优势)? 问题答案: Cookies和本地存储有不同的用途。Cookies主要用于读取 服务器端 ,本地存储只能由 客户端 读取。所以问题是,在您的应用程序中,谁需要此数据-客户端还是服务器? 如果它是您的客户端