2012-04-27 100 views
1

我想创建一个共享日历作为一个Web应用程序。当某人在日历上添加活动时,我希望每个与该日历共享的人都能看到该活动。当有人创建一个事件时,我做了一个将数据发送到数据库的ajax。有没有办法将事件从服务器发送到在页面上在线的其他客户端并共享相同的日历?我现在通过不断'刷新'数据库的信息来做到这一点。 如果有人知道如何做到这一点,请告诉我。发送信息给客户端服务器事件

回答

2

想要一个Web服务器将信息“推”回浏览器是一个老问题。处理这个问题的传统方法是让任何活跃的客户端(即人们仍然登录到您的应用程序打开页面)持续不断地“轮询”服务器,以查看是否有任何新的信息。就你而言,你可以让页面上的一些JS每隔10秒发起一次AJAX调用,看看他们是否有任何他们应该知道的新日历事件。这确实增加了您的Web服务器的整体流量,因此请适当选择您的轮询时间 - 否则您将损坏Web服务器,因为它将花费所有时间处理这些“有什么新东西?”大部分时间都不会有请求。

如果您想要更具优势,您可以查看HTML5 websockets。谷歌搜索“html5 websockets教程”应该会给你足够的资源。他们使用起来有点棘手,并且要求您运行支持它们的Web服务器(您可能是)。对于支持它的浏览器,您可以保持更长时间的开放连接,然后您可以将数据从Web服务器推送回浏览器,并且您的JS将使用更新后的信息捕获“onmessage”事件。指着你的谷歌并没有试图从更完整的答案中脱颖而出,但已经有很多优秀的教程,因此寻找HTML websockets,你应该能够取消你想要做的。

+0

非常感谢你Rob,说实话我甚至不知道从哪里开始,所以你指向谷歌“html5 websockets教程”正是我所需要的。欢呼:) – 2012-04-27 22:12:22