Hi,为确保您的账号安全,请大家修改登陆密码为包含大小写字母、标点、数字的复合密码,不要使用过于简单的登陆密码。
您当前的位置:首页 :: HTML5

HTML5离线缓存实现及管理库

时间:2014-06-09 10:43:17  来源:  作者:

 同步插件JS

/*
* 离线缓存库同步插件
* 使用说明:
* 1.该插件是为了方便开发者使用缓存库进行同步操作,开发者可以像调用localstorage的方式调用相关接口。
* 2.由于离线缓存,包括fileSystem,indexdb和webSQL系统提供的API就是异步的方式,为了提供同步的API,必然有效率上的损失。
*   效率影响:
*   (1) 启动时会一次性加载离线缓冲库中的所有数据,故获取数据的时间会相应变长,对于少量数据,可以忽略不计,如果数据量特别大
*       即该插件会明显减慢加载速度。
*  (2)由于数据会全部拷贝到内存中,会占用浏览器内存。
*  (3)由于开发者调用的接口其实都是从内存中取得数据,故速度比较快,flush等操作让后台处理。
*   建议:该插件式为了方便同步使用离线缓存库,对于小数据量很方便,对于大数据来说,不推荐使用该插件,建议都采用异步的方式调
*         用离线缓存库提供的接口。
*
*  3.正常使用该库的时候必须保证synCache初始化成功。
* */

 ;(
    function(global)
    {
        var cachePool = {};
        var cacheMgr = window.cache;
        var syncCache = {
            inited: false
        };

        /*
        * 只有inited为true时才能正常调用相关的接口
        * */
        syncCache.init = function(suc){
            if(!syncCache.inited)
            {
                cacheMgr.init(function(){
                    cacheMgr.getAll(function(o){
                        cachePool = o;
                        syncCache.inited = true;
                        suc && suc();
                    }, function(){
                        cachePool = {};
                        syncCache.inited = true;
                        suc && suc();
                    })
                });
            }
        };

        syncCache.getItem = function(key){
            var sKey = key + "";
            return cachePool[sKey];
        };

        syncCache.setItem = function(key, value){
            var sKey = key + "";
            cachePool[sKey] = value;
            cacheMgr.setItem(sKey, value);
        };

        syncCache.removeItem = function(key){
            var sKey = key + "";
            if(cachePool[sKey]){
                delete cachePool[sKey];
                cacheMgr.removeItem(sKey);
            }
        };

        syncCache.clear = function(key){
            cachePool = {};
            cacheMgr.clear();
        };

        //syncCache.init();
        global.syncCache = syncCache;
    }
)(window);

 

举报
收藏0次 / 评论0
评论(0)
还可以输入 2000 个字符
还可以输入 2000 个字符
取消回复
举报×

还可以输入 264 字符

收藏(0)×