uoziod
@uoziod

Safari: AJAX-запрос + манипуляции с DOM + скроллинг в один момент невозможны?

Здравствуй, Хабр.


Бьюсь над одной интересной лагой, имеющей место быть только в Safari.


Что у меня есть: изначально на странице есть 3 блока. Когда мы скроллим страницу вниз и достигаем центром экрана верхней границы последнего блока происходит AJAX-запрос, после выполнения которого происходит удаление верхнего блока, append нового блока после последнего и сразу же к scrollTop прибавляем высоту удалённого блока. Похожее поведение происходит при прокрутке вверх. При пересечении серединой экрана нижней границы верхнего блока происходит AJAX-запрос, после исполнения которого удаляется нижний блок, вставляется новый блок перед первым и из scrollTop отнимаем высоту вставленного блока, для обеспечения ощущения, будто мы никуда ничего не вставлялось.

Поиграть можно тут (source code читабелен)


Итак в Chrome, Firefox всё работает просто прелестно — как и ожидалось.


Но в Safari если присмотреться, то создаётся впечатление что очень часто scrollTop происходит спустя какое-то количество миллисекунд…

На этом видео обратите внимание на эти моменты: 0:11, 0:26, 0:50, 0:53, 1:00, 1:05.


Пробовал делать много: менять порядок событий, делать всякие таймауты — ничего не помогает…

Товарищи, какие у вас есть мысли по этому поводу?
  • Вопрос задан
  • 3379 просмотров
Пригласить эксперта
Ответы на вопрос 2
hell0w0rd
@hell0w0rd
Просто разработчик
В chrome ничего прелестного.
Version 27.0.1453.47 beta
OS X 10.7.5
Если прокрутку быстро крутить — в конце страницы происходит эффект оттягивания экрана, причем продолжая скроллить — цвет меняется, но ничего не скроллится
Ответ написан
uoziod
@uoziod Автор вопроса
Господа, а может быть у кого-нибудь есть свободные Member Center Technical Support (TSIs) заявки чтобы разузнать об описанной проблеме?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы