В Chrome, если пользователь прокручивает все XHR, а setTimeouts будет задерживаться до тех пор, пока прокрутка не остановится, и мне понадобится обходной путь для этого. Поведение описано в этом сообщении в блоге. Хотя эта функция помогает передвигать прокрутку, она катастрофична для бесконечного прокрутки, и это то, что я пытаюсь сделать.
Доказательства того, что это происходит:
-
Все остальные браузеры работают нормально, Chrome показывает пустой экран, пока пользователь не перестанет прокручиваться.
-
Сетевая панель отобразит все запросы как
pending
до тех пор, пока прокрутка не закончится, а затем все закончится сразу. -
Поместите это в фрагмент, запустите его, затем сразу начните прокрутку. SetTimeout не будет вызываться до тех пор, пока не закончится прокрутка.
var p = new Promise(function (resolve) {
setTimeout(function () {
console.log('resolving');
resolve();
}, 1000)
});
p.then(function () {
console.log('DONE!!');
})