首页 > 解决方案 > Chrome 控制台 - 循环重新加载

问题描述

我需要检查我的访客跟踪器,所以我在 chrome 控制台中输入了这个设置,并设置了保留日志:

i = 0; 
while (i<4) 
{ 
    location.reload();
    window.alert(i);
    i++;
}

警报框弹出 4 次值(0、1、2、3),我也得到了结果:

3

导航到“网站网址”

结果和警告框显示代码运行到最后,但为什么页面只重新加载一次?

请不要苛刻。

标签: javascriptconsole.log

解决方案


当您重新加载页面时,您编写的所有 javascript 代码都会丢失。在您的代码中,该location.reload()函数在之前执行alert(),但我怀疑因为该location.reload()函数需要时间才能完全执行,它仍然有足够的时间执行该alert()函数以及所有其他迭代,这导致 while 循环在之前完成页面已重新加载。

location.reload()可能属于异步函数的范畴,这意味着函数开始执行并在后台继续运行。异步函数之后的所有代码都会立即执行,无论异步函数到那时是否已经完成。

如果您想跟踪访问者数量,请使用一些 php 并将数据保存在数据库中。

更新:将此代码放入 .html 文件并打开它。根据需要重新加载它,并currentClicks在控制台中检查变量。

<!DOCTYPE html>
<body>
<script>
var currentClicks = localStorage.getItem("clickCount");
currentClicks++;
localStorage.setItem("clickCount", currentClicks);
</script>
</body>
</html>

推荐阅读