하나의 솔루션은 설치에 백엔드에 대한 신속한 요청을 중지 할 수있는 잠금 장치가 될 것입니다. 요청이 이루어지기 전에 잠금이 활성화 된 다음 요청이 완료되고 DOM이 새 콘텐츠 (페이지 크기를 확장)로 업데이트되면 잠금이 해제됩니다. 예를 들어
:
new Vue({
// ... your Vue options.
ready: function() {
var vm = this;
var lock = true;
window.addEventListener('scroll', function() {
if (endOfPage() && lock) {
vm.$http.get('/myBackendUrl').then(function(response) {
vm.myItems.push(response.data);
lock = false;
});
};
});
}; }});
또 다른 사실은 스크롤 이벤트가 실제로 (특히 모바일 장치에서) 필요한 것보다 많이 발생한다는 것입니다. 성능 향상을 위해이 이벤트를 조절할 수 있습니다. 이 효율적으로 requestAnimationFrame으로 수행 할 수 있습니다
;(function() {
var throttle = function(type, name, obj) {
obj = obj || window;
var running = false;
var func = function() {
if (running) { return; }
running = true;
requestAnimationFrame(function() {
obj.dispatchEvent(new CustomEvent(name));
running = false;
});
};
obj.addEventListener(type, func);
};
/* init - you can init any event */
throttle ("scroll", "optimizedScroll");
})();
// handle event
window.addEventListener("optimizedScroll", function() {
console.log("Resource conscious scroll callback!");
});
당신은 실패/실패한 것을 보여줄 필요가 있습니다. :) –
@AmreshVenugopal 답장을 보내 주셔서 감사합니다. 내 코드를 업데이트했습니다.보세요. – masterhunter