Задать вопрос
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.


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

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

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

Похожие вопросы