【问题标题】:Refresh a webpage just once after 5 seconds5 秒后只刷新一次网页
【发布时间】:2011-11-21 18:24:56
【问题描述】:

我正在寻找一种 JavaScript 解决方案(或其他任何方法),它只会在网页打开 5 秒后刷新一次网页。这是否可能而不会陷入刷新循环?

【问题讨论】:

    标签: refresh webpage


    【解决方案1】:

    试试这个:

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

    【讨论】:

      【解决方案2】:

      您可以通过许多不同的方式来做到这一点,但我认为最简单的方法是在刷新后向 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)
      }
      

      如果查询字符串可能已经存在,您必须考虑到这一点并更改“?” '&'。

      【讨论】:

        【解决方案3】:

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

        How to wait 5 seconds with jQuery?

        $(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 :(');
                        }
                    }
        
                });
        
            });
        

        【讨论】:

        • 这既不刷新页面,也与避免刷新循环无关。 -1
        【解决方案4】:

        使其重定向到具有不同#hash 的同一页面,并且在 JS 中仅在未设置哈希时注册重定向。

        【讨论】:

          【解决方案5】:

          您只需要在页面加载之间传递某种数据。这可以通过多种方式完成——使用 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

          【讨论】:

            猜你喜欢
            • 2014-02-10
            • 2016-03-21
            • 1970-01-01
            • 2013-05-19
            • 2014-10-16
            • 1970-01-01
            • 1970-01-01
            • 2016-03-10
            • 2023-02-21
            相关资源
            最近更新 更多