在chrome浏览器中通过自动滚动(鼠标中键并拖动网页)滚动时,似乎直到用户释放按钮才发生回调。
我正在尝试通过AJAX请求延迟加载表行,这阻止了表的填充。
这仅在chrome上发生,并且在Firefox中工作正常。
为什么会发生这种情况,并且有解决方法?
例如:
let canFireRequest = true;
$(window).on("scroll", function () {
if (canFireRequest) {
const scrollHeight = $(document).height();
const scrollPosition = $(window).height() + $(window).scrollTop();
if ((scrollHeight - scrollPosition) / scrollHeight <= 0.15) {
populateRows(tableView, onLoadBeforePopulate);
canFireRequest = false;
setTimeout(function () { //execution reaches this line
canFireRequest = true; //but this is only called when MMB is released
}, 50);
}
}
});
答案 0 :(得分:0)
事实证明,这是Chrome中的一个错误,该错误是最近由于输入计划的优化而引入的,希望可以在今年晚些时候得到修复。在此处查看错误报告:
https://bugs.chromium.org/p/chromium/issues/detail?id=874072#c_ts1534324198