使用ajax/javascript和setTimeout重新加载页面2次
Reload page 2 times with ajax / javascript and setTimeout
老实说,我必须承认我不擅长Ajax、Java脚本或CSS。请对我宽容一点,我需要帮助。我使用的是Jquery mobile中封装的CMS,不能使用元刷新方法。如何使用下面的代码使页面在指定时间只重新加载2次。
<script type="text/javascript">
$(document).ready(function(){
setTimeout(function(){
window.location.reload();
}, 2000);
});
$(document).ready(function(){
setTimeout(function(){
window.location.reload();
}, 15000);
});
</script>
我遇到的问题是,它忽略了第二个,一直在循环。我知道有一个简单的解决办法。
您需要持久性来克服循环问题。这是因为每次重新加载页面时,都会对其中的javascript进行评估。你的页面应该"记住"它已经被重新加载了。。。怎样有很多方法。您可以在查询字符串中添加一个参数,或者将此数据保存在cookie或本地存储中。您可以跟踪服务器端的重新加载。每种方法都有其优缺点。
这里有一个简单的工作解决方案,接近您正在寻找的解决方案,它使用localStorage(旧浏览器不支持localStoragehttp://caniuse.com/#feat=namevalue-存储)
<script type="text/javascript">
;(function () {
var reloads = [2000, 13000],
storageKey = 'reloadIndex',
reloadIndex = parseInt(localStorage.getItem(storageKey), 10) || 0;
if (reloadIndex >= reloads.length || isNaN(reloadIndex)) {
localStorage.removeItem(storageKey);
return;
}
setTimeout(function(){
window.location.reload();
}, reloads[reloadIndex]);
localStorage.setItem(storageKey, parseInt(reloadIndex, 10) + 1);
}());
</script>
正如您所看到的,我使用了一个包含某种时间线的数组。为了简单起见,数组的每个元素都包含自上次重新加载以来在更改页面之前要等待的毫秒数。
相关文章:
- 加载器组件仅加载一次
- 如何加载一次模型并将其存储到变量中
- 每15天为新用户加载一次放大弹出菜单
- Jquery Ajax每隔1秒加载一次
- 每个用户/浏览器会话只加载一次Javascript
- 当audiojs加载两次时,audiojs进度条不工作
- 获取 window.location.reload 以在 Ionic 中仅加载一次
- 只加载一次js函数
- 用于单击页面上的按钮的Javascript,每隔几分钟就会加载一次
- 有没有办法阻止脚本加载两次?JavaScript
- Facebook喜欢的按钮只加载一次
- 如何每 30 秒加载一次页面的一部分
- 如何在用户滚动到页面底部时仅加载一次数据
- 为什么在 IIS7 中托管 MVC3 项目时,我的 AJAX 加载第一次失败
- 在同一页面中加载两次时需要JS冲突
- Chrome 确实会加载一次视频文件,但不会加载两次
- 如何修复有时加载两次、一次或根本不加载的 Facebook JSDK
- 位置.重新加载多次加载.只需在单击时重新加载一次
- JavaScript 只重新加载一次
- 添加 removeMarker 函数时,每 5 秒在地图上加载一次图钉不会显示图标