javascript - 如何在 jQuery 中使用滚动函数调用一次函数?

标签 javascript jquery function scroll jquery-events

我有 .viewPort 区域,其中包含带滚动的大元素。

并创建类似流动代码之类的函数:

jQuery:

$('.part').each(function(){
    if( $(this).is(':in-viewport') ){
        var partID = $(this).attr('id');
        if($('.part #content-id-'+(partID)+').length < 1) {
            partLoader(partID);
        }                       
    }
});

function partLoader(id) {
    // do some ajax actions
    //$.ajax({....});
    console.log('done');
}

当我滚动时,我在 console.log 中完成了很多操作,并且浏览器崩溃了!!!

我知道这是因为滚动事件而向服务器发送了太多 partLoader()!

那么...我如何通过滚动调用 partLoader 一次?

最佳答案

  1. 考虑不执行 $('.part').each() 而是执行 $('.part').last() (无论是否有效将取决于您网站的结构,所以我不能确定。)
  2. 更加谨慎地使用 .part,因此生成的请求较少。
  3. 使用更好的 if 语句来过滤掉更多不需要更新的 .part 元素。
  4. 使用debouncer ...

我认为 4 没有必要,因为它看起来像是如何调用 AJAX 的结构问题(从每个 .part 元素而不是需要它的元素 - 但我可以'如果不了解更多结构,就不会提供更多建议),但这会限制 AJAX 调用的数量。

关于javascript - 如何在 jQuery 中使用滚动函数调用一次函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656679/

相关文章:

javascript - 带按钮的透明弹出/覆盖(JQuery、CSS)

javascript - 使用 tumblr JSON 呈现自定义照片集

javascript - 将 HTML5 本地存储值传递给 PHP 错误

javascript - JSONObject 文本必须以 '{' 开头,位于 1 [字符 2 第 1 行]

jquery - 附加输入 js 不工作

jquery - 如何更改图像 onclick javascript 函数?

PHP 循环遍历 MySQL 函数返回的数组

javascript - 我的函数参数有问题还是其他什么问题?

javascript - 在用户使用单选按钮回答一系列问题后,使用 jQuery 显示用户分数

javascript - RegEx 实时反转