![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| krinart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 10.4.2008 Где: Донецк Репутация: нет Всего: нет |
есть два варианта:
1. Жесткая привязка к глобальному времени и при инциализации сервер сообщает клиенту, сколько сейчас времени, клиент сравнивает и потом при каждой операции со временем учитывать эту поправку. Погрешность возникнет в момент передачи этой информации. 2. Каждый раз при обращении клиента к серверу, сервер сообщает, сколько времени осталось на совершение действия. Погрешность будет возникать каждый раз. Если медленный интернет или просто забит канал, может появиться погрешность в 1 или даже 2 секунды. Конечно, это не очень не критичное, но всё же. Подскажите, какое вариант более рациональный |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
я так понимаю время с сервера сообщать каждый раз, но принимать его только в том случае, если клиентское время будет опаздывать.
т.е. первый раз нет никакого клиентского времени, мы принимаем сереверное. при следующих запросах, если вдруг оказывается, что клиентское отстаёт, то принимаем серверное таким образом, в момент быстро прошедшего и вернувшегося запроса клиентское время войдёт в ритм с серверным |
|||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 8 Всего: 22 |
Изначально неправильный подход ... нужно делать так называемое keep-alone соединение, чтобы сервер мог сам инициировать событие клиенту тогда когда ему это нужно, а не ждал запроса от клиента. Естественно, это значительно сложнее, но уже сейчас есть ряд методик реализации такого подхода. Самая распространенная и популярная - Comet, когда посылается request, а response удерживается на сервере, используя его как постоянный канал отправки данных (как бы незакрытое соединение). Правда, в "чистом" html+javascript реализовывать не вполне удобно, так как страница будет постоянно иметь статус загружаемой (в ИЕ будут крутиться часики или что-то-там-еще), хотя можно попробовать через фрейм. Но зато эта методика великолепно подходит для вставляемой в страницу флешки, которая если нужно может обмениваться информацией со страницей - так сделаны большинство онлайн-игр.
Еще есть методика удерживающих ответов - Continuations: мы посылаем запрос, а сервер удерживает ответ до тех пор, пока не появится событие (или по истечении заданного времени), а когда возвращае, то клиент тут же отправляет снова запрос. С одной стороны, система менее гибкая - не сохраняется полноценная асинхронность запросов, но с другой - надежно и просто и на голову выше отправки запросов по таймеру - как недорогой и эффективный способ очень даже ничего (сам когда-то раскручивал - работало хорошо). |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |