![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
FCCStepan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.10.2007 Репутация: нет Всего: нет |
Затрудняюсь 2х словах уложить суть вопроса, по этому название темы не очень раскрывает суть проблемы.
И так. имеем. 1) Клиент открывает сайт, авторизируется, задает вопрос и сворачивает окно браузера 2) никаких событий обновления страницы не происходит. 3) Клиент получает ответ на свой вопрос (по сути это изменение записи в бд) 4) На компьютере клиента появляется окошко, извещающее клиента о поступлении ответа. На сколько я понимаю, с использованием аякса, можно без обновления содержимого страницы (нажатий f5 или передвижений по сайту) отловить событие (в данном случае - событие появления ответа). Далее если запрос аякса вернул 1цу -нужно отобразить красивое окошко - типа тех, которые выводят downloader'ы (при звершении всех загрузок). Для этого мы берем JS и развлекаемся с ней. В принципе это одна из схем. Вторая схема - это тулбар, который ловит все эти события. Еще идеи, варианты, пожелания, предложения есть? Заранее спасибо. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Ajax это polling метод, т.е. скрипт опрашивает сервер через промежутки времени. Если окно закрыли, то и скрипт убьётся.
Тулбар штука не простая, его как плагин нужно ставить, что само по себе не удобно (именно для твоей задачи). К тому же тулбар имеет гораздо больше прав, к примеру может читать содержимое других страниц. Вывод: читаем любую из сотен тысячь статей о ajax'е, понимаем принцип работы. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
FCCStepan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.10.2007 Репутация: нет Всего: нет |
Sardar, неудобность тулбара - согласен. Про закрытие окна - естественно тоже в курсе. про polling можно по подробнее ? хотябы целиком название, что бы было от чего отталкиваться.
Есть какие ни будь принципиально другие подходы? |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
polling - опрашиваем сервис через некоторые промежутки времени, в противоположность к events - получаем уведомления о смене состояния.
События от сервера не получить (без постоянных коннектов), все ajax (и не только) приложения опрашивают сервер сами. Довольно тяжёлый способ это держать коннект открытым (в iframe к примеру). Сервис каждую секунду отправляет пробелы или lag-event'ы, что бы браузер не закрыл соединение. Как только возникает событие - отправляется вызов метода на стороне JS. Да, это гораздо более реактивно, чем самому опрашивать (пока сеть не лагает), но хавает ресурсы на сервере (продолжительный коннект штука не приятная). Главное, что тебе это не нужно ![]() ![]() Если изменения вызваны тобой, то естественно ты сразу можешь их отобразить, не дожидаясь подтверждения с сервера. Как только ответ придёт, обновишь страницу в реальное состояние, уведомив пользователя если что-то пошло не по сценарию. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
FCCStepan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.10.2007 Репутация: нет Всего: нет |
Спасибо, это все понятно.
Как на аяксе послать запрос серверу с учетом бездействия пользователя? Тоесть как завести таймер, который будет выполнять запрос? дальше со всем остальным я уже разберусь сам, там понятно. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
setInterval(func, milliseconds) или setTimeout(func, milliseconds), где func это вызываемая функция (можно анонимную function() {..), а milliseconds соответственно тысячные секунды. Вбей в поиск, масса примеров.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |