如何以编程方式存储特定的 JavaScript或CSS文件在浏览器的本地存储中,并在需要时检索它 如果当前会话到期,则将其从本地存储中删除。
让我们通过这个例子(伪代码)理解:
{{1}}
我需要这样的东西。我提到了大量的博客和QA的堆栈溢出,但没有得到但并没有找到我想要的东西。 请建议我该怎么做。?
答案 0 :(得分:0)
您无法在localstorage中存储文件。但你可以使用html5 menifest来存储html,css,js和image。
检查此其他线程以获取更多详细信息。
答案 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>);
}
}