收到异步 POST 响应,需要更新网页

Posted

技术标签:

【中文标题】收到异步 POST 响应,需要更新网页【英文标题】:receiving async POST response, need to update webpage 【发布时间】:2013-07-17 20:14:55 【问题描述】:

所以我正在使用 django 框架显示一个网页。 现在,当有人签到我的某个位置时,我会从foursquare API 获得异步POST 响应。

这是一个奇怪的问题。

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

我研究过 AJAX 并了解它在客户端知道发生某些事件时很有用,然后它会调用一个函数来接收一些值并更新页面的一部分,例如某些 div。

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

我有办法解决这个问题吗? 我研究了 dajax 和 dajaxice,但找不到它们有什么用处。

我见过一些解决方案,我可以添加一些 JQuery 以定期查询服务器,但这似乎不是最佳的。

对我应该研究什么有什么建议吗?

事实证明,web socket 不会切断它,因为我没有在客户端发生任何事件并且我不需要全双工通信;彗星似乎是一个沉重的框架。我正在研究其他东西。接受很酷的建议。

【问题讨论】:

请考虑服务器发送的事件。 【参考方案1】:

您可以选择:

    Comet html5 的 Web 套接字 Server-sent Events 用于 HTML5。例如,您可能需要polyfill。

【讨论】:

酷我会研究彗星。我确实遇到过它,但是我没有仔细阅读它。 事实证明,web socket 不会切断它,因为我没有在客户端发生任何事件并且我不需要全双工通信; Comet 似乎是一个沉重的框架。谢谢!! 全双工通信意味着即使在服务器端发生了一些事情,你也可以在那个时候改变客户端的内容。如果你不介意ie 6之类的老浏览器,也可以选择。 酷,谢谢! SSE 似乎是满足我需要的方法!

以上是关于收到异步 POST 响应,需要更新网页的主要内容,如果未能解决你的问题,请参考以下文章

ajax异步请求/同源策略/跨域传值

减少 KafkaProducer 发送异步响应时间

ajax交互方法实现

AJAX

ajax

ajax详解