В чем разница между F5 и Ctrl-F5 в Firefox, связанной с событиями JavaScript? - PullRequest
12 голосов
/ 14 октября 2011

Когда вы попробуете эту общедоступную страницу: http://slim.nl/shop/default.aspx (обновление: в то время как этот сайт изменился так, что поведение этого вопроса больше не может быть там протестировано), вы заметите строку меню. Если вы нажмете F5 , меню в этой панели исчезнет. То же самое, когда вы заходите на эту страницу с помощью кнопки «Назад» в вашем браузере. Это происходит только в Firefox (замечено в версиях 3-7). Используя Ctrl - F5 , меню появляется снова.

Насколько мне известно, все события JavaScript, которые запускаются при загрузке страницы, включая любые циклы AJAX, также должны запускаться при обновлении страницы с помощью F5 или переходе туда через кнопку Back. Что здесь происходит?

Я хотел бы знать, с точки зрения программиста, в чем разница между F5 и Ctrl - F5 , предпочтительно более общая, чем только в этом случае. Если, конечно, это не ошибка в Firefox.

enter image description here

Ответы [ 4 ]

10 голосов
/ 14 октября 2011

Ctrl + F5 очищает кэшированные файлы в браузерах, где F5 просто обновляет страницу, но он использует кэшированные файлы. Например, вы загружаете страницу, вносите изменения в CSS-файл и загружаете его, нажимая кнопку «Обновить» или F5 . Страница просто обновляется и не получает новый измененный CSS-файл, нажав ctrl + F5 , он очищает кэш для страницы и извлекает файл снова из сервер. Затем будет загружен новый файл CSS, который будет отображать изменения.

6 голосов
/ 14 октября 2011

Firefox кэширует не только загруженные файлы, но и изменения, внесенные на страницу (пользовательский ввод и даже изменения атрибутов, сделанные JavaScript). Проверьте это . Поэтому, если ваше меню зависит от некоторых атрибутов, вы можете просто hard-refresh, нажав CTRL + F5 .

2 голосов
/ 14 октября 2011

Ctrl + F5 просто заставит кеш игнорироваться. Возможно, у вас есть небольшая ошибка асинхронного программирования, которая проявляется только при более быстрой загрузке страницы (из-за использования кэша).

1 голос
/ 06 января 2012

Эта проблема была исправлена ​​путем отката файла \ js \ dnn.controls.dnnmenu.js к предыдущей версии. Не уверен, что там было не так (не успел отладить), но все равно теперь работает:)

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