有没有人知道如何在JavaScript中5秒后刷新页面一次?
我有以下脚本在5秒后刷新页面:
setTimeout(function () {
window.location.reload(1);
}, 5000); // After 5 secs
但不知何故,这是每5秒刷新一次,而不是在第一个5秒后刷新一次。有谁知道如何解决这个问题?
答案 0 :(得分:2)
我认为更好的解决方案是检查document.referer
并与document.location
if (document.referrer !== document.location.href) {
setTimeout(function() {
document.location.reload()
}, 5000);
}
您可以在jsfiddle:https://jsfiddle.net/ga0Lrurj/
中尝试此操作答案 1 :(得分:1)
这是迄今为止最简单,最轻便的解决方案:
setTimeout(function () {
if(window.location.hash != '#r') {
window.location.hash = 'r';
window.location.reload(1);
}
}, 5000); // After 5 secs
答案 2 :(得分:0)
您需要一种方法来识别重新加载的页面。最简单的方法(imo)是控制这个服务器端。检查一个get-variable并包含js-code(如果它不存在)。
另外,我看到有人建议使用cookies。我不喜欢使用cookies来做这样的小事。
您可以尝试以下方式:
// Get all get-variables
var queryDict = {}
location.search.substr(1).split("&").forEach(function(item) {queryDict[item.split("=")[0]] = item.split("=")[1]})
// Check if reloaded is set
if (queryDict['reloaded'] == 'undefined') {
// Check if url contains any get-variables
if (Object.keys(queryDict).length == 0) {
var redirect = document.URL + '?reloaded';
}
else {
var redirect = document.URL + '&reloaded';
}
// The timeout
setTimeout(function () {
window.location = redirect;
}, 5000);
}
答案 3 :(得分:0)
您需要在执行插入或更新或任何其他任务之后保留此脚本,然后它将在5秒后重新加载您的页面一次。它在上传图片的过程中对我有用,我上传文件后保留了这些脚本,而不是将它保存在window.load或documents.ready中,它的功能就像魅力一样。这是我的剧本。这可以帮助您解决问题
<script type="text/javascript">
$(window).load(function () {
$('#<%=FileUpload1.ClientID%>').uploadify({
'swf': 'fy/uploadify.swf',
'cancelImg': 'fy/uploadify-cancel.png',
'buttonText': 'Browse Files',
'uploader': 'Gallery.ashx',
'folder': 'uploads',
'fileDesc': 'Image Files',
'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
'multi':true,
'auto': false,
'formData':{'paid':<%= Request.QueryString["PhotoAlbumID"] %>},
'onUploadStart': function (file) {
$("#<%=FileUpload1.ClientID%>").uploadify("settings", 'Txt', $('#password').val());
$( document ).ready(function() {
}); setTimeout(function() { window.location=window.location;},3000);
}
});
});
</script>