js实现页面刷新计数原理

JavaScript011

js实现页面刷新计数原理,第1张

1:首先要有思路,比如要计数,那一定要做的就是记着上次的个数,然后在原有基础上加一;

2:如何实现,在页面加载后实现,有哪些方法?

思路1:当浏览器加载完后执行一个方法来处理计数?

浏览器加载完数据:window.onload()

思路2:如可获取上次页面打开的个数?

window给我们提供了一种方法:window.name 当前window的名称;

实现:

刷新:

实现的方法有很多,下面写一个用  setTimeout() 和  open() 方法实现的简单例子, setTimeout() 定时调用 open() 打开特定的页面。供参考。

<html>

<head>

<script type="text/javascript">

function autoOpen(count){

  if(count>0){

    window.open("B.html","new")

    //设置要请求的页面(或URL)及新窗口的名称

    count--

    setTimeout("autoOpen("+count+")",2000)

    //设置频率(第2个参数,单位为ms)

  }

}

</script>

</head>

<body>

<button type="button" onclick="autoOpen(10)">Start</button>

<!--调用 autoOpen(),设置次数-->

</body>

</html>

但是这种方法有点像“恶意弹窗”,而且大量重复使用会过多消耗浏览器的资源,所以这种定时请求最好不要用页面创建、刷新的方法来实现。如果是在同一个域内发送请求,建议使用 Ajax,这样不会创建新的页面,可以减小浏览器的开销(同时也可以节约服务器的资源)。

js页面刷新

让页面进行刷新,可以使用 location.reload() 方法,但是这种方法会让页面一直不断的刷新。

这是因为当页面加载完成以后,我们让它刷新一次,那么浏览器就会重新向服务器请求数据,界面会重新加载,然后,加载完成又调用了location.reload()方法,这样就陷入了死循环,一直处于请求然后刷新的状态。

为了解决这样的问题,我们使用下面这种方式:

利用以上方法,在每次进入这个页面的时候,都会绕过浏览器缓存,重新向服务器获取数据。