如何在localStorage中存储javascript或css文件

时间:2016-06-10 06:50:10

标签: javascript caching local-storage browser-cache

如何以编程方式存储特定的 JavaScript或CSS文件在浏览器的本地存储中,并在需要时检索它 如果当前会话到期,则将其从本地存储中删除。

让我们通过这个例子(伪代码)理解:

{{1}}

我需要这样的东西。我提到了大量的博客和QA的堆栈溢出,但没有得到但并没有找到我想要的东西。 请建议我该怎么做。?

3 个答案:

答案 0 :(得分:0)

您无法在localstorage中存储文件。但你可以使用html5 menifest来存储html,css,js和image。

检查此其他线程以获取更多详细信息。

Storing CSS and JS in Local Storage

答案 1 :(得分:0)

简而言之,是的,但我不建议您这样做。 试试这个,它和你的问题一样: https://softwareengineering.stackexchange.com/questions/105524/is-it-realistic-to-make-use-of-html5-local-storage-to-store-css-and-javascript

答案 2 :(得分:0)

嗯,这对我有用。如果还将具有最后更改日期的变量存储在localstorage中,并将另一个变量传递给脚本,则在离开页面时不必清除存储。您可以比较两个日期,并仅在必要时从服务器加载较新的脚本。如果用户返回页面,它会提高性能,尤其是在连接速度较慢时。

从服务器加载脚本:

jQuery.loadScript(<your_script_url>);
jQuery.loadScript = function (url) {    
    jQuery.ajax({
        url: url,
        dataType: 'script',
        cache: false,   
        async: true,
        success: function(response){            
            save_script_in_local_storage(response);         
        }
    });
}

将其保存在本地存储中

function save_script_in_local_storage(script){
    try{
        if (typeof(Storage) !== "undefined" && typeof localStorage !== "undefined" && localStorage !== null && typeof localStorage.setItem === 'function') {
localStorage.setItem("my_script", JSON.stringify(script));
}
    }catch(e){
        console.log(e);
    }
}

从本地存储加载脚本:

if (!load_from_server){
   try{
        if (typeof(Storage) !== "undefined" && typeof localStorage !== "undefined" && localStorage !== null && localStorage.getItem("my_script") !== null) {
           var my_script = JSON.parse(localStorage.getItem('my_script'));
           $('<script>')
                .attr('type', 'text/javascript')
                .attr('id', 'my_script')
                .text(my_script)
                .appendTo('head');
        }else{                  
           jQuery.loadScript(<your_script_url>);
        }
  }catch(e){
     jQuery.loadScript(<your_script_url>);
  }
}