我在页面加载时在setTimeout内部使用了ajax加载函数,该ajax加载函数将在特定时间后调用
问题是setTimeout完成后它一直在工作。它像递归一样工作。
SetTimeout函数将被调用一次,但是如果我在其中使用了ajax函数。它以递归方式工作。
listview
如何停止递归调用ajax负载?
答案 0 :(得分:0)
根据评论中的对话,我想有一个解决方案。它可能是您的确切解决方案。但是有些时间对其他人有用。 当我通过单击按钮/链接通过Ajax加载名为“ ABC”的页面时。然后从该“ ABC”页面调用$('body')。load(url)。 $('body')。load(url)是我单击按钮/链接的次数。 从互联网上阅读后,我了解到我需要取消绑定创建的事件。所以我只用ajax加载页面。 所以,我只是用方法。并且解决了我的问题。
$("body").unbind();
var pathname = window.location.pathname;
setTimeout(function(){
$('body').load(pathname + '#examplediv');
},60000);
答案 1 :(得分:0)
问题是您试图通过Ajax在文件中加载特定元素。那不可能Ajax加载您指向它的整个文件。就您而言,该文件是您自己的索引文件,其中还包括setTimeout
函数。因此,它会持续每分钟重新加载。
要解决此问题,请创建一个新文件,例如popup.html
。将#examplediv
中的代码复制到该新文件。然后将其从索引文件中删除。现在使用:
var pathname = window.location.pathname;
setTimeout(function(){
$('body').load(pathname + '/popup.html');
},60000);
Ajax现在将在1分钟(仅包含来自popup.html
的代码)一分钟后加载#examplediv
到您的body
元素中,而不是整个您自己的索引文件中。这样可以解决问题。