2012-04-27 3 views
1

Я пытаюсь создать общий календарь в качестве веб-приложения. Когда кто-то добавляет событие в календарь, я хочу, чтобы все, кто поделился этим календарем, тоже увидели это событие. Когда кто-то создает событие, я создал ajax, который отправляет данные в базу данных. Есть ли способ отправить событие с сервера другим клиентам, находящимся в сети на странице, и поделиться одним и тем же календарем? Я сделал это сейчас, постоянно «обновляя» информацию из базы данных. Если кто-нибудь знает, как это можно сделать, скажите, пожалуйста.Отправить информацию клиенту на событие сервера

ответ

2

Желание веб-сервера «нажимать» информацию обратно в браузер - это старая старая проблема. Традиционный способ справиться с этим состоит в том, чтобы все активные клиенты (т. Е. Люди все еще вошли в ваше приложение с открытой страницей) непрерывно «опросили» сервер через регулярный промежуток времени, чтобы узнать, есть ли для него какая-либо новая информация. В вашем случае вы можете заставить JS на странице делать AJAX-вызов каждые 10 секунд, чтобы узнать, есть ли у них какие-либо новые события календаря, о которых они должны знать. Это увеличивает общий трафик на ваш веб-сервер, поэтому выберете время опроса соответствующим образом - иначе вы будете калечить свой веб-сервер, потому что он будет тратить все свое время на обработку данных «есть ли что-нибудь новое»? запросы, когда большую часть времени их не будет.

Если вы хотите быть немного более резким, вы можете посмотреть веб-узлы HTML5. Поиск Google для «html5 websockets tutorial» должен дать вам много ресурсов. Они немного сложнее использовать и требуют, чтобы вы запускали веб-сервер, который их поддерживает (вы, вероятно,). Для браузеров, которые его поддерживают, вы можете поддерживать более долгосрочное открытое соединение, в котором вы можете затем отправить данные с веб-сервера обратно в браузер, как вы хотите, и ваш JS будет захватывать события onmessage с обновленной информацией. Указывая на то, что вы в Google не пытаетесь вытереть из более полного ответа, но уже есть ряд отличных учебных пособий, поэтому найдите веб-сайты HTML, и вы сможете убрать то, что вы хотите сделать.

+0

Большое спасибо, Роб, честно говоря, я даже не знал, с чего начать, поэтому ваш указатель на google «html5 websockets tutorial» - именно то, что мне нужно. привет! –

Смежные вопросы