Информация об изменениях

Сообщение Re[5]: Надёжное обновление страницы от 17.07.2020 20:32

Изменено 17.07.2020 20:34 vsb

Re[5]: Надёжное обновление страницы
Здравствуйте, ·, Вы писали:

vsb>>·>Не понял почему "точно"? Вот у нас есть загруженная работающая страница. Поступил сигнал "обновиться". Если просто тупо сделать window.reload, то index.html может вообще не прийти, а покажется например какой-нибудь "DNS error", если сеть временно отвалилась. Что конкретно ты предлагаешь делать при поступлении сигнала?

vsb>>Если мы перезагружаем работающую страницу, то я написал — делаем это аяксом. То, что я написал выше это для варианта, когда страница загружается браузером изначально (или перезагружается через F5).
·>Не очень понял. Ну допустим мы успешно вытянули аяксом обновлённый index.html. Что дальше?

Заменяешь всю страницу новым текстом. Что-то вроде document.open(); document.write(newHtml); document.close();

Старые таймеры будут тикать, да, могут быть непредвиденные спецэффекты.
Re[5]: Надёжное обновление страницы
Здравствуйте, ·, Вы писали:

vsb>>·>Не понял почему "точно"? Вот у нас есть загруженная работающая страница. Поступил сигнал "обновиться". Если просто тупо сделать window.reload, то index.html может вообще не прийти, а покажется например какой-нибудь "DNS error", если сеть временно отвалилась. Что конкретно ты предлагаешь делать при поступлении сигнала?

vsb>>Если мы перезагружаем работающую страницу, то я написал — делаем это аяксом. То, что я написал выше это для варианта, когда страница загружается браузером изначально (или перезагружается через F5).
·>Не очень понял. Ну допустим мы успешно вытянули аяксом обновлённый index.html. Что дальше?

Заменяешь всю страницу новым текстом. Что-то вроде document.open(); document.write(newHtml); document.close();

Старые таймеры будут тикать, да, могут быть непредвиденные спецэффекты. Хотя, думаю, в целом вероятность таковых невелика. Если это важно, можно переопределить setTimeout/setInterval и вести учёт всех таймеров, чтобы отменить их перед заменой документа.