Raj*_*mar 1 javascript ajax jquery
出于某种奇怪的原因,下面的 ajax 函数被触发了两次。loadMoreResults(); 函数用于从服务器检索数据。我使用谷歌开发人员工具跟踪发送到服务器的数据,它显示 ajax 请求被连续触发两次。我猜当用户快速滚动时会发生这种情况。
//Executed when user has scrolled bottom of the page
$(window).scroll(function (e) {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
loadMoreResults();
}
});
Run Code Online (Sandbox Code Playgroud)
关于如何防止这种情况发生的任何想法?感谢你的帮助。
正如您所说,这可能是因为用户滚动速度太快,文档无法使用新结果进行更新。
尝试使用一个标志来阻止loadMoreResults()在函数仍在执行时调用。
您在函数开始时将其设置为 true,并在获得结果后将其设置为 false。在将标志loadMoreresults()设置为 之前,可以将标志的检查放在函数的开头true。
例如:
function loadMoreResults() {
if (flag) return;
flag = true;
[...]
flag = false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1906 次 |
| 最近记录: |