Pull to refresh
15
0
Send message

Баг с GPU и Canvas в Google Chrome под Windows

Reading time3 min
Views12K
На днях работал над необычной и от того интересной задачей. Выяснилось, что у наших менеджеров на определенной странице постоянно возникает сообщение “Опаньки” в Google Chrome. Скажу сразу, страница эта весьма насыщенная, и содержит в себе достаточно тяжеловесные компоненты как фотогалерея, карта и панорама. У меня никак не получалось воспроизвести данный баг, и я собираюсь рассказать о том что было сделано для того, чтобы найти и обезвредить его.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments2

Back/Forward Cache — механизм кеширования страниц в браузере

Reading time4 min
Views22K
Начиная с версии 1.5, в Firefox появился механизм кеширования, сохраняющий состояние страницы в памяти. Кеширование действует на одну сессию браузера. Перемещаясь по посещенным страницам с использованием кнопок «Назад/Вперёд», нет необходимости загружать страницу с сервера целиком. При этом вся страница, включая js-скрипты, как бы «консервируются» в том состоянии, в котором они были, когда пользователь их покидал. Данный механизм позволяет производить навигацию по посещенным страницам крайне быстро. Состояние кеша остается неизменным, пока действует сессия браузера (пока пользователь не закроет закладку, или браузер).

Не «баг», а «фича»

Помимо прочего, непонимание данного механизма браузеров вызывает настоящую головную боль у разработчиков. Рассмотрим пример.
Есть форма, данные которой мы хотим отправить на сервер. Мы хотим как-то визуализировать этот процесс и запускаем спиннер при отправке формы. Браузер переходит на следующую страницу. Если мы вернемся назад, используя кнопку браузера «Назад» (или через window.history.back()), то скорее всего увидим, что спиннер так и вращается, хотя на самом деле уже ничего не происходит.

Разработчик может посчитать, что данное поведение ни что иное как баг браузера или какая-то его особенность, и в поисках быстрого решения бездумно вставить лишний обработчик на событие unload (первый пункт в списке, приведенном дальше). Тем самым разработчик отказывается от BFCache вообще, тем самым лишая своих пользователей возможности практически мгновенного перемещения по посещенным страницам.
Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments16

Information

Rating
Does not participate
Registered
Activity