我的.viewPort
区域包含带滚动的larg元素。
并创建一些像流动代码的功能:
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中获得了很多done
,浏览器崩溃了!!!
我知道这是因为滚动事件发送给服务器的partLoader()
太多了!
所以......如何通过滚动来调用partLoader
一次?
答案 0 :(得分:1)
$('.part').each()
而是$('.part').last()
(无论是否有效将取决于您网站的结构,因此我无法确定。).part
,因此产生的请求更少。.part
元素。我不认为4是必要的,因为它看起来像是一个结构问题,你如何调用AJAX(来自每个.part
元素而不是那些需要它的元素 - 但我不能提供更多建议,但不知道更多关于结构的信息),但它会限制AJAX调用的数量。