Поведение Javascript при обновлении страницы - PullRequest
0 голосов
/ 02 декабря 2009

Каково ожидаемое поведение Javascript при мягком обновлении веб-страницы?

Я знаю, что при обновлении страницы большинство веб-браузеров сохраняют значения, введенные в элементы формы на странице. Но становится сложнее предсказать, что произойдет при обновлении, когда половина страницы будет генерироваться динамически.

Хотя мой вопрос немного более общий. Я хочу знать, каково поведение веб-браузера, когда на странице обновляется динамический контент. В частности:

  • Что Javascript получает повторно.
  • Как DOM изменяется при обновлении.
  • Как значения форм "перемещаются" в нужное место в DOM после обновления.
  • Какие еще причудливые вещи происходят?

Ответы [ 2 ]

1 голос
/ 02 декабря 2009

Если вы покидаете страницу, щелкая ссылку или вводя URL-адрес в панель навигации, некоторые браузеры пытаются приостановить страницу и возобновить ее, как только пользователь вернется. Эта техника известна под разными именами:

Для страницы это выглядит так, как будто пользователь никогда не покидал ее. Однако не все страницы могут быть приостановлены. Особенно страницы с плагинами, страницы, обслуживаемые с использованием HTTPS, и все страницы с обработчиком событий unload игнорируются кешем страниц.

Если кеш страниц не используется, страница перезагружается с сервера. Браузеры могут заполнять поля формы и восстанавливать позиции прокрутки.

0 голосов
/ 02 декабря 2009

Повторная загрузка = полный повторный запрос. (shift + reload = перезагрузить все js и css файлы с сервера)

Браузер также может запоминать пары name = "" value = "" и пытается предварительно заполнить поля на основе запомненных пар. Речь идет не о том, чтобы пытаться точно указать, какие поля находятся в каком пикселе или что-то в этом роде.

Я обновляю страницы все время при разработке, весь javascript перезапускается, как будто страница загружается заново. Я не верю, что события изменения запускаются на странице из-за запомненных значений.

Это также верно для firefox -> этот кадр -> перезагрузить или IE щелкнуть правой кнопкой мыши на кадре и перезагрузить.

Chrome не допускает перезагрузки одного кадра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...