Обновляйте внешнюю веб-страницу каждые несколько секунд - PullRequest
0 голосов
/ 29 июня 2018

Для работы я провожу много времени на тематических форумах. В течение дня я проверяю эти форумы, чтобы увидеть, есть ли какие-либо вопросы и ответы, имеющие отношение к тому, над чем я работаю. Тем не менее, конкретный сайт, который я использую, не обновляется автоматически, поэтому я должен обновить его. Это не такая уж большая проблема, но я решил сохранить следующий скрипт JavaScript в качестве закладки:

setInterval(function() { document.location.reload(true); }, 1000);

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

Я полагаю, что более общий вопрос заключается в том, "есть ли способ сохранить скрипт работающим, даже когда пользователь переходит на новый сайт?" Я думаю, нет, так как тогда сайты могли бы отслеживать вас, когда вы просматривали остальную часть Интернета. Тем не менее, кажется, что могут быть уровни выполнения скрипта; возможно, выполнение сценария из закладки отличается от тега на веб-странице; будь я дизайнером браузера, я бы учел это и считал бы «кодом браузера», работающим за кулисами независимо от загруженной в данный момент страницы. Это то, как работают браузеры, или он видит все скрипты как запущенные на текущей загруженной странице?

Спасибо!

1 Ответ

0 голосов
/ 29 июня 2018

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

Да. Ну, вы должны думать с точки зрения инфраструктуры клиент-сервер. Каждый раз, когда браузер перезагружается, он должен отправить на сервер новый запрос, который технически уничтожил бы все запущенные процессы JS в текущем DOM. Вот почему простое использование setInterval само по себе также не сработает, потому что процесс остановлен и никогда не переносит новую перезагрузку.

Решение : Вы должны использовать Пользовательские сценарии

Для того, чтобы это работало, вы должны поместить свой скрипт в контекст одного браузера, а не в архитектуру клиент-сервер. Таким образом, поскольку контекст выполнения - это браузер, а не DOM, обновление страницы не прерывает процесс JS. Процесс останавливается только при закрытии браузера.

Если вы используете Chrome, проверьте расширение Chrome Tampermonkey Я считаю, что это лучший способ управления пользовательскими сценариями в браузере. Добавьте свой сценарий, создав новый сценарий, сохраните, а затем в настройках сценария добавьте целевой сайт под совпадениями пользователей

enter image description here

Ограничение : Это решение будет работать только для вас (кто может установить расширения или добавить скрипт пользователя в вашем браузере), а не для других пользователей сайта, потому что мы находимся вне контекста «клиент-сервер» .

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