2016-04-29 7 views
0

Возможно, этот вопрос не так «проблемной/решаемую» версии, но я все еще интересен: В JavaScript, когда мы делаем гипотетическое событиеЧто происходит, когда событие срабатывает

_addEvent(window,"resize", 
      function(){ 
       location.reload(); // needed to reload page when it is resized 
       //somefunctions 
      } 
     ); 

и сделать некоторый стиль конфигурация с в случае [в somefunctions part] при изменении размера страницы новая страница [resized] наследует каким-то образом измененный javascript и css раньше, а затем переходит к событию после его изменения снова?

Любопытно, на каких этапах объект DOM попадает в лоток, когда страница изменена, а затем снова изменена.

Пример реального мира: изменение размера окна браузера на компьютере, чтобы он поместил половину экрана, а затем снова изменил его на полный экран.

ответ

0

При изменении размера страницы содержимое страницы не изменяется браузером. Размер окна изменен, браузер снова запустит макет в существующем контенте, чтобы решить, где вещи должны отображаться в окне нового размера, а затем будет инициировано событие изменения размера.

Если обработчик изменения размера вносит изменения в DOM, браузер снова решит, нужно ли переделывать новый макет, но это не вызывает другого события изменения размера.

Если вы делаете в обработчике изменения размера (который звучит как ужасной идея, кстати) в location.reload(), то загружается целая новая страница и вновь загружаются страница будет просто загрузить в текущий размер окна. Для вновь загруженной страницы не будет другого события изменения размера, если пользователь не изменит размер окна.

location.reload() не наследует ничего, кроме файлов cookie и localStorage, с предыдущей страницы. Содержимое перезагружается с нуля (некоторые из них могут быть получены из кеша), браузер анализирует это с нуля и снова запускает новую страницу. Это будет похоже на нажатие F5 в браузере для перезагрузки страницы.

+0

спасибо за головы! : D я просто скопировал это из некоторого кода, даже не заметил: o , но если у меня есть div, то есть в полноэкранном режиме слева, а на полуэкранном экране справа и меньше по размеру, и все который управляется js (без использования css), это все тот же процесс? – Danilo

+0

@ Danilo - Тот же процесс. События «resize» происходят одинаково независимо от того, что делает ваш JS. Вы можете использовать JS для позиционирования или изменения размера элементов в событии 'resize'. Это ничего не меняет о событии изменения размера. Событие с изменением размера ТОЛЬКО происходит, когда размер окна содержимого изменяется. Это не имеет ничего общего с изменением контента. – jfriend00

+0

благодарит кучу: D Классно знать. – Danilo

Смежные вопросы