以下问题 - 我将样式表存储在本地存储中。但是当我尝试从那里加载它时,我使用JSON.parse()
,似乎浏览器已经渲染了CSS。但我更喜欢浏览器将解析后的CSS视为文本,然后将文本附加到样式标记。
守则:
从服务器加载样式表并将其存储在本地存储中
function load_css(url){
$.ajax({
url: url,
cache: false,
dataType: 'text',
success: function(res){
$('<style>').attr('id', 'my_style').text(res).prependTo('#my_div');
if (typeof(Storage) !== "undefined" && typeof localStorage !== "undefined" && localStorage !== null && typeof localStorage.setItem === 'function') {
localStorage.setItem("my_style", JSON.stringify(res));
}
},
error: function(err){
console.log(err);
}
});
}
在另一个函数中,如果设置了样式,则应从本地存储加载样式:
try{
if (typeof(Storage) !== "undefined" && typeof localStorage !== "undefined" && localStorage !== null && localStorage.getItem("my_style") !== null) {
var css = JSON.parse(localStorage.getItem('my_style'));
$('<style>').attr('id', 'my_style').text(css).prependTo('#my_div');
... //load style from server if local storage not available, item not found
即使我遗漏了创建的样式标记的行,也会呈现css。通过这一行,我看到如果我检查一个元素,元素样式在开发人员工具栏中出现两次。那么在使用JSON.parse()
时如何阻止浏览器呈现样式呢?也许有另一种方法将本地存储中的样式视为纯文本?
答案 0 :(得分:3)
你在说这个
jdbc:mysql://"+url+":"+port+"/"+database?autoReconnect=true&useSSL=false, username, password
存储之前。所以,一旦你通过ajax获取文档,然后在其他代码上再次使用它。
答案 1 :(得分:0)
很抱歉写在这里,因为我没有足够的代表发表评论我在这里写下来。
我只是想知道你为什么要从本地存储加载样式表。我们已经有了一个浏览器缓存。那么使用本地存储实现它的好处/目的是什么?
我只是好奇。