我正在使用jquery使用以下代码重新加载页面
<script type="text/javascript">
$(document).ready(function(){
setInterval(function() {
window.location.reload();
}, 10000);
})
</script>
但是我有一些要求,我只需要刷新页面6次,并显示一条消息&#34;发生了一些问题&#34;
那么如何使用jquery在特定时间(在我的情况下为6)刷新/重新加载页面?
答案 0 :(得分:3)
只是一个想法:您可以使用查询字符串在页面刷新之间传递计数器。像这样:
<script type="text/javascript">
var counter = 0;
$(document).ready(function(){
counter = parseInt(getParameterByName("counter"));
if(counter < 6){
setInterval(function() {
window.location.href = "http://" + window.location.host + window.location.pathname + '?counter=' + (counter + 1);
}, 10000);
}
})
//convenient method to get parameters from query string
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
</script>
答案 1 :(得分:3)
基于LShetty的评论:
在这里可以看到使用 localStorage 的基本示例http://coding.smashingmagazine.com/2010/10/11/local-storage-and-how-to-use-it/
E.g。一些事情
<script type="text/javascript">
$(document).ready(function(){
var counter = localStorage.getItem('counter');
if (counter == null) {
counter = 0;
}
counter++;
if (counter<=6) {
localStorage.setItem('counter', counter);
setInterval( function() {
window.location.reload();
}, 10000 );
}
})
</script>
当然,你可以使用 cookie 来达到同样的目的,因为你只需要存储一个计数器(低于存储在cookie中的4K数据限制)。例如,您可以使用以下文章http://www.quirksmode.org/js/cookies.html
中的createCookie和readCookie函数答案 2 :(得分:0)
$(function(){
if($('#sessioncounter').val() <= 6 ){
setTimeout(function(){
window.location = window.location;
}, 6000);
}
});
$('#sessioncounter').val()
给出您在会话中的每次加载时保存的计数器值。我不知道你正在使用什么样的后端语言..无论如何,做一个隐藏的领域
<input type='hidden' id='sessioncounter' />
然后在每次将计数器重新加载到此字段后保存。
答案 3 :(得分:0)
使用哈希变量也适用于没有本地存储的旧浏览器。
$(document).ready(function(){
var count = parseInt(window.location.hash.replace('#',''))
if(!count){
count = 0;
}
count++;
if(count < 7){
setTimeout(function(){ window.location = 'http://'+window.location.hostname+window.location.pathname+'#'+count;}, 1000);
}
});