5秒后刷新一次网页



我正在寻找一个JavaScript解决方案(或其他),将刷新一个网页只有一次,5秒后,它已经打开。这是可能的,而不是卡在刷新循环?

try this:

setTimeout(function ()
    {
        if (self.name != '_refreshed_'){
        self.name = '_refreshed_';
        self.location.reload(true);
    } else {
        self.name = ''; 
    }
    }, 5000);

你可以在许多不同的方式做到这一点,但我认为最简单的是在刷新后向url添加查询字符串,允许我们告诉刷新是否已经发生:

//Function to get query string value. Source: http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx
function getQuerystring(key, default_){
  if (default_==null) default_=""; 
  key = key.replace(/[[]/,"\[").replace(/[]]/,"\]");
  var regex = new RegExp("[\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}
//check if our query string is already set:
if(getQuerystring(r) !== 1){
  setTimeout(function(){window.location.href = window.location.href + '?r=1'},5000)
}

如果有可能查询字符串已经存在,您将不得不考虑并更改'?

当然,如果您不介意使用jquery,您可以在等待5秒后通过ajax调用来完成。只是给你一些示例代码:

如何用jQuery等待5秒?

$(document).ready(function() {
        // Get data
        $.ajax({
            url : '/tommyStockExchange/Data',
            dataType : 'html',
            data : {
                'format' : 'H',
                'type' : 'E'
            },
            success : function(data) {
                $("#executions").html(data);
            },
            statusCode : {
                404 : function() {
                    alert('executions url 404 :(');
                }
            }
        });
    });

用不同的#hash重定向到同一页面,并且在JS中只在未设置hash值的情况下注册重定向。

您只需要在页面加载之间传递某种数据。这可以通过多种方式实现—在服务器端使用cookie、URL查询参数或其他东西。查询参数示例:

if (!location.search.match(/(?|&|^)stopRefreshing(=|&|$)/))
{
    setTimeout(function ()
    {
        var search = location.search;
        location.search = search ? search + '&stopRefreshing' : 'stopRefreshing';
    }, 5000);
}

演示:http://jsbin.com/ofawuz/edit

最新更新