Перейти к содержимому


- - - - -

Вопрос к знатокам! Удаленное открытие ссылки в браузере по команде


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 JooM

JooM

    ..::Secret Agent Man::..

  • Пользователи
  • PipPipPipPipPipPipPip
  • 7 788 сообщений
  • Пол: мужской

Отправлено 06.04.2019 - 22:50

Есть два стула...



Есть две страницы на сайте, одна админ, другая юзер

Суть такова: юзерская страница должна постоянно, скажем раз в секунду вести опрос админской страницы, на предмет того по какой ссылке перейти.

То есть я с админской страницы прожимаю нужную мне ссылку (например 1 из 100 заготовленных)
Юзерская страница получает команду и открывает эту ссылку


Как проще всего реализовать?

#2 muhas

muhas

    слава роботам!

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPip
  • 38 499 сообщений
  • Пол: мужской

Отправлено 07.04.2019 - 10:16

не уверен что правильно понял задумку
самое простое что в первую очередь приходит в голову без всяких лонгпулов, пушей и каких-нить извращений с 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 JooM

JooM

    ..::Secret Agent Man::..

  • Пользователи
  • PipPipPipPipPipPipPip
  • 7 788 сообщений
  • Пол: мужской

Отправлено 07.04.2019 - 15:15

Просмотр сообщенияmuhas (07.04.2019 - 10:16) писал:

не уверен что правильно понял задумку
самое простое что в первую очередь приходит в голову без всяких лонгпулов, пушей и каких-нить извращений с 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 скрытых пользователей