Gmail, кажется, имеет какой-то умный способ обработки кнопок «назад» / «вперед» в многофункциональном приложении JS.
В моей организации мы опробовали плагин истории jQuery.Плагин в основном запускает функцию каждые 100 мс, которая анализирует URL и проверяет, изменился ли он.История отслеживается с помощью якорей HTTP, и если якорь изменился, то плагин вызывает указанный пользователем обратный вызов, передавая новый якорь, чтобы страница могла выполнять пользовательское поведение для загрузки нового контента.
Моя организация определила, что плагин истории jQuery не был качественным.Я не виню их, если честно, потому что вы на самом деле не хотите заставлять браузеры своих пользователей запускать функцию каждые 100 мс.Кроме того, это делало код JS практически невозможным для отладки, потому что нажатие «Разбить на следующее» в Firebug или аналогичном отладчике JS всегда будет перехватывать событие истории jQuery, и никакие другие события не будут видны.
Таким образом, мы отказались от реализации функции возврата / пересылки в браузере.Однако недавно я заметил, что Gmail реализует это довольно хорошо.Он также использует значение привязки HTTP, но я нажал «Break On Next», и Gmail не запускает никаких функций каждые 100 мс.Как Gmail удается реализовать такое поведение «назад / вперед»?