Установка:Cross-кадр Cross-Site Scripting - создание веб-страницы перегружатель/сторожевого
Есть дистанционные измерительные станции, есть централизованный сбор/обработка/представление сервера (с веб-сервера), и есть станции наблюдения которые должны отображать собранные данные для клиентов.
Эти наблюдательные станции состоят из простых костей простого встроенного компьютера, оснащенного веб-браузером, работающим в режиме киоска, отображающим одну конкретную веб-страницу с центрального сервера. Эта веб-страница обновляется с помощью AJAX, отображающего последние измерения данной измерительной станции. Подключенные к стационарному монитору, эти станции должны работать почти без обслуживания в течение многих лет.
Теперь мы разработали большинство изломов, но есть вопрос: что делать, если веб-сервер выходит из строя? Браузер загрузит «недостижимые», «404», «Разрешенные отказы», «500» или любой другой способ отказа, который сервер взял на тот момент, и останется там до тех пор, пока кто-то вручную не перезагрузит станцию наблюдения.
Общее решение, с которым я столкнулся, заключается в том, чтобы установить домашнюю страницу браузера не на наблюдаемую страницу, а на всегда доступный локальный файл HTML, который будет выполнять периодические проверки, если удаленная страница была загружена и обновлена правильно, и перезагрузите если он не может выполнить по какой-либо причине.
Проблема:
проблема заключается в кросс-кадров сценариев. Я предполагаю, что целевой веб-странице придется загружать как фрейм, iframe, объект типа text/HTML или какой-либо другой способ, который заставит его отображаться без удаления/отключения локального файла «container». Несколько лет назад я написал страницу с несколькими кадрами, и обход мер безопасности был непростым. С тех пор безопасность должна быть затянута.
Таким образом, страница, загруженная с удаленного сервера, содержит часть javascript, которая запускается периодически (некоторые setInterval), если все прошло хорошо или нет, если что-то было сломано. Периодическое прибытие этого сигнала в рамку контейнера заставляет его сбросить свой тайм-аут и не предпринимать никаких других действий.
В случае, если сигнал не поступает, по истечении времени ожидания контейнер начинает периодически обновлять загруженную веб-страницу до тех пор, пока сервер не будет установлен и не будет загружен надлежащий контент, что сигнализирует об этом загрузчику.
Как получить удаленную страницу для передачи «живой» (скажем, установки переменной) на локальную (контейнерную) страницу, загруженную из файла: // URL каждый раз при срабатывании определенной функции?