我想在用户访问该页面时仅重新加载一次页面。
我使用以下脚本:
$(document).ready(function() {
for (i = 1 ; i <= 1 ; i++) {
location.reload();
}
});
但它继续重新加载页面。 for循环有错误吗?
答案 0 :(得分:3)
JavaScript会在页面加载时重置 每个 时间。重新加载页面后,您的for
循环就是历史记录。以下是使用HTML5 Local Storage的替代方法:
$(document).ready(function() {
if(localStorage.getItem('reload') != false)
localStorage.setItem('reload', false);
location.reload();
}
});
答案 1 :(得分:2)
你需要以某种方式让页面记住它之前已经加载过。我会使用localStorage / sessionStorage:
$(document).ready(function() {
if (!localStorage.reloaded) {
location.reload();
localStorage.reloaded = true;
}
});
答案 2 :(得分:1)
正如其他人所提到的,你需要一些维护某种标志的机制来表明重新加载后页面已被重新加载。
常见的解决方案是cookie,url片段,本地存储。
<强>曲奇强>
if(!(/\breloaded=1/.test(document.cookie))){
document.cookie = 'reloaded=1';
location.reload();
}
网址片段
if(location.hash != '#reloaded'){
location.hash = '#reloaded';
location.reload();
}
本地存储
if (localStorage.getItem('reloaded') != false) {
localStorage.setItem('reloaded', false);
location.reload();
}
答案 3 :(得分:-1)
您可以在首次加载页面时设置使用jquery设置的cookie,然后使用if语句运行重新加载(如果页面尚未重新加载(将在cookie中定义)并删除饼干之后。