Есть два стула...
Есть две страницы на сайте, одна админ, другая юзер
Суть такова: юзерская страница должна постоянно, скажем раз в секунду вести опрос админской страницы, на предмет того по какой ссылке перейти.
То есть я с админской страницы прожимаю нужную мне ссылку (например 1 из 100 заготовленных)
Юзерская страница получает команду и открывает эту ссылку
Как проще всего реализовать?
1
Вопрос к знатокам! Удаленное открытие ссылки в браузере по команде
Автор
JooM
, 06.04.2019 - 22:50
Сообщений в теме: 2
#2
Отправлено 07.04.2019 - 10:16
не уверен что правильно понял задумку
самое простое что в первую очередь приходит в голову без всяких лонгпулов, пушей и каких-нить извращений с http2 это по таймеру выполнять запрос к тому месту где у тебя лежит урл, с админки соответсвенно писать этот урл туда откуда дергать будешь
А так лонги вешать, с вебворкерами чего придумывать и прочее, но есть подозрение что если ты спрашиваешь так базово то тебе не до них
зы. код писал прям тут поэтому за качество и работоспособность не ручаюсь, но надеюсь направление куда копать с этого кода будет понятно
самое простое что в первую очередь приходит в голову без всяких лонгпулов, пушей и каких-нить извращений с http2 это по таймеру выполнять запрос к тому месту где у тебя лежит урл, с админки соответсвенно писать этот урл туда откуда дергать будешь
function getUrl() { fetch('/url.json') .then(function(response) { alert(response.headers.get('Content-Type')); // application/json; charset=utf-8 alert(response.status); return response.json(); }) .then(function(data) { if(data.url !== undefined) { // ну и само открытие страницы если в возвращаемом json есть эта страница window.open(data.url,"_self") // или не селф, или вообще location.href = data.url, в общем чо надо конкретно то и делаем } // если надо повторить запрос ещё раз ставим таймер setTimeout(getUrl, 1000); // ну а если без промисового fech, то вероятно в другом месте таймер после отработки снова выставлять }) .catch(function(data) { // если чот не прокатило, не 200 код возврата например // так же при ошибке можно снова запустить какой таймер или сыграть на бубне }) } // ни у ставим на запрос таймер, при необходимости повторяем его установку (лучше без интервала вызывать таймер, а то интервалом стопицот этих функций навызвается при затупах) setTimeout(getUrl, 1000);в примере данные о том чо будет открыватся лежит в json, но можно и по другому, от парсинга страницы и хэдеров до всяких извращений
А так лонги вешать, с вебворкерами чего придумывать и прочее, но есть подозрение что если ты спрашиваешь так базово то тебе не до них
зы. код писал прям тут поэтому за качество и работоспособность не ручаюсь, но надеюсь направление куда копать с этого кода будет понятно
Сообщение отредактировал muhas: 07.04.2019 - 10:17
#3
Отправлено 07.04.2019 - 15:15
muhas (07.04.2019 - 10:16) писал:
не уверен что правильно понял задумку
самое простое что в первую очередь приходит в голову без всяких лонгпулов, пушей и каких-нить извращений с http2 это по таймеру выполнять запрос к тому месту где у тебя лежит урл, с админки соответсвенно писать этот урл туда откуда дергать будешь
А так лонги вешать, с вебворкерами чего придумывать и прочее, но есть подозрение что если ты спрашиваешь так базово то тебе не до них
зы. код писал прям тут поэтому за качество и работоспособность не ручаюсь, но надеюсь направление куда копать с этого кода будет понятно
самое простое что в первую очередь приходит в голову без всяких лонгпулов, пушей и каких-нить извращений с http2 это по таймеру выполнять запрос к тому месту где у тебя лежит урл, с админки соответсвенно писать этот урл туда откуда дергать будешь
function getUrl() { fetch('/url.json') .then(function(response) { alert(response.headers.get('Content-Type')); // application/json; charset=utf-8 alert(response.status); return response.json(); }) .then(function(data) { if(data.url !== undefined) { // ну и само открытие страницы если в возвращаемом json есть эта страница window.open(data.url,"_self") // или не селф, или вообще location.href = data.url, в общем чо надо конкретно то и делаем } // если надо повторить запрос ещё раз ставим таймер setTimeout(getUrl, 1000); // ну а если без промисового fech, то вероятно в другом месте таймер после отработки снова выставлять }) .catch(function(data) { // если чот не прокатило, не 200 код возврата например // так же при ошибке можно снова запустить какой таймер или сыграть на бубне }) } // ни у ставим на запрос таймер, при необходимости повторяем его установку (лучше без интервала вызывать таймер, а то интервалом стопицот этих функций навызвается при затупах) setTimeout(getUrl, 1000);в примере данные о том чо будет открыватся лежит в json, но можно и по другому, от парсинга страницы и хэдеров до всяких извращений
А так лонги вешать, с вебворкерами чего придумывать и прочее, но есть подозрение что если ты спрашиваешь так базово то тебе не до них
зы. код писал прям тут поэтому за качество и работоспособность не ручаюсь, но надеюсь направление куда копать с этого кода будет понятно
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 скрытых пользователей