2013-07-18 77 views
0

所以我使用django框架显示一个网页。 现在,当有人检入我的某个位置时,我会从foursquare API获取异步POST响应。接收异步POST响应,需要更新网页

这是一个奇怪的问题。

我的问题:只要我的服务器收到来自四方API服务器的POST响应,什么是最好的方式来更新网页,而不刷新它。 现在,在处理POST响应的视图中,我只更新了一些上下文变量,并在另一个视图中使用这些变量来显示内容,但显然这些更改仅在刷新页面后才显示。

我已经研究过AJAX并了解它在客户端意识到某些事件发生时会很有用,然后调用函数来接收某些值并更新页面的某些部分(如某些div)。

但在我的情况下,客户端并没有意识到任何此类事件,因为当有人检入并且响应来自foursquare服务器到我的服务器时,请求正在生成。

我有一些方法可以解决这个问题吗? 我已经看到了dajax和dajaxice,但找不到它们如何有用。

我已经看到了一些解决方案,我可以添加一些JQuery来以小的定期间隔查询服务器,但看起来并不理想。

关于我应该看什么的建议?

原来,Web套接字不会削减它,因为我没有任何事件发生在客户端,我不需要全双工通信;彗星似乎是一个沉重的框架,我正在研究其他的东西。打开冷却建议。

+0

请考虑服务器发送的事件。 – Anderson

回答

0

您可以选择:

  1. Comet
  2. 网络插座HTML5
  3. Server-sent Events为HTML5。对于ie,您可能需要polyfill
+0

酷我会考虑彗星。我确实碰到过它,但是我没有详细阅读。 – AdRoiT

+0

原来,Web套接字不会削减它,因为我没有任何事件发生在客户端,我不需要全双工通信; Comet似乎是一个沉重的框架。谢谢!! – AdRoiT

+0

全双工通信意味着即使在服务器端出现问题,您也可以在此刻更改客户端的内容。如果你不关心ie 6这样的老式浏览器,你可以选择它。 – Anderson