首页 > 解决方案 > 连续加载网站后需要解决错误

问题描述

我尝试制作一个网站,在几秒钟后更新或加载其中的一部分。在我加载网站后几秒钟到几分钟后(取决于我在代码中输入时间的时间)不断加载网站的一部分,它会返回:

啊,啪!
显示此网页时出现问题。

这是我在不断加载页面时使用的脚本:

setInterval(function(){
            refresh() // this will run after every 36 seconds
        }, 36000);

        function refresh() {
            $('#myChart').load(location.href + "#myChart>*","");
        }

老实说,我不知道里面的代码是如何function refresh()工作的。如果您能帮助我理解这两件事,那将有很大帮助。

标签: javascriptjqueryhtml

解决方案


您正在导致堆栈溢出,因为您的网址与您.load()所在的页面相同。因此它将同一页面加载到“myChart”元素中,然后启动另一个setInterval. 所以现在你有 2 个setInterval正在运行,然后当它再次加载时,你有 4 个正在运行,然后是 8 个,依此类推。

我不确定将您当前所在的页面加载到您当前所在的页面中的目的。也许您的意思是加载不同的网址?如果你这样做,那么你不会有堆栈溢出。

演示

https://repl.it/@AnonymousSB/SO53360989

setInterval(function(){
  refresh() // this will run after every 36 seconds
}, 36000);

function refresh() {
  $('#myChart').load(location.href + "/path/to/another/page.htm");
}

如果您只是想自动重新加载您所在的页面,那么试试这个。

function refresh() {
  window.location.reload(true);
}

setTimeout(refresh, 36000);

推荐阅读