Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Одностороннее обновление страницы браузера 
:(
    Опции темы
fedushok
Дата 30.1.2016, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.9.2015

Репутация: нет
Всего: нет



Приветствую всех!

Имеется несколько (а то и больше) посетителей одного сайта, визуальное представление которого определяется базой данных этого сайта. Каждый из посетителей может вносить изменения в эту базу. Как в ответ на это изменение обновить страницу сайта в браузерах всех остальных посетителей сайта?

PM MAIL   Вверх
ksnk
Дата 30.1.2016, 23:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Периодически опрашивать сервер на предмет "а не поменялось ли чего". Ajax'ом. Сервер  должен выдавать, ну, к примеру, время последней модификации данных. Страница сравнивает это время со своим (вшитым страницу при ее генерации) и перезагружается, если надо.

Для обычной страницы сайта - задача совершенно ненужная. Для online-игрушки не очень быстрой - может и пойдет, для совместного редактирования страницы может оказаться слишком нереактивным средством. 
Зачем такое нужно?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
fedushok
Дата 30.1.2016, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.9.2015

Репутация: нет
Всего: нет



Опрашивать сервер "не катит". Это нарушение компетенции. Если только сервер знает о наличии обновления, тогда он и должен выполнять работу по обновлению. Нужно другое решение.

Это сообщение отредактировал(а) fedushok - 31.1.2016, 10:24
PM MAIL   Вверх
igorold
Дата 2.2.2016, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: нет
Всего: 17



В клиент-серверной конфигурации, если клиент не сделает запрос, от сервера ничего не придет.
Разве есть другое решение кроме как предложения ksnk?

Если есть, было бы интересно.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
gta4kv
Дата 2.2.2016, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Вебсокет.

Цитата

Опрашивать сервер "не катит". Это нарушение компетенции. Если только сервер знает о наличии обновления, тогда он и должен выполнять работу по обновлению. Нужно другое решение.


Если где-то это утверждение и верно, то явно не в веб-программирование. Сервер с клиентом установить связь не может. Возможные варианты уже описали, это или периодический опрос сервера или вебсокет.

В случае с сокетом с сервером будет установлен постоянный коннект и, соответственно, можно будет передать любые данные и на странице их поймать с помощью WebSocket.onmessage

В случае с опросом сервера так же возможен long polling это тоже по факту непрерывный коннект к серверу но на уровне HTTP. Суть заключается в том, что к серверу вешается подключение (обычно <30s), а сервер опрашивает себя сам на наличие изменений в цикле (из разряда while(true) { sleep(1) ...select new events... }), при получении данных или отваливание опроса по таймауту устанавливается новый "long poll" 

Это сообщение отредактировал(а) gta4kv - 2.2.2016, 09:10
PM MAIL   Вверх
fedushok
Дата 7.2.2016, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.9.2015

Репутация: нет
Всего: нет



Цитата(gta4kv @ 2.2.2016,  07:42)
Если где-то это утверждение и верно, то явно не в веб-программирование. Сервер с клиентом установить связь не может. Возможные варианты уже описали, это или периодический опрос сервера или вебсокет.

Насколько я разузнал WebSocket держит двустороннюю связь между сервером и клиентом. Если так, то что мешает серверу сделать обновление когда он сочтёт нужным?
PM MAIL   Вверх
ksnk
Дата 8.2.2016, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(fedushok @  7.2.2016,  21:51 Найти цитируемый пост)
Если так, то что мешает серверу сделать обновление когда он сочтёт нужным?

На первый взгляд - ничего не мешает, кроме ограниченной поддержки вебсокетов броузерами и возможности отключения их из паранои. Хотя для узкого круга лиц, допущенных к редактору - можно их всех заставить пользоваться Хромом.
Какая задача решается-то?



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
fedushok
Дата 8.2.2016, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.9.2015

Репутация: нет
Всего: нет



Вопрос не сколько в задаче, сколько в здравом смысле.

Если я правильно понял, то только EI 8 и 9 не поддерживают WebSocket-ы. В опере нужно включать специально.
Капец какой-то.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1163 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.