【问题标题】:http push django comethttp推送django彗星
【发布时间】:2011-12-07 07:31:25
【问题描述】:

我想做一个 django 服务器来刷新你接近数据库的内容,如果想法是首先让用户看到数据库的当前内容,并且随着山谷成为新的内容,这个内容就来了放在前面的内容之上而不重新加载页面,在网站的另一部分是让你在获取数据库时用新的内容更改当前内容?

evserver clearer 是我的选择,但真的不知道怎么做最简单高效?

【问题讨论】:

    标签: html django comet


    【解决方案1】:

    我认为您应该避免使用 HTTP 轮询。原因如下:

    • 如果setInterval 的频率与您的 Web 应用程序上的用户数量相结合会导致大量资源消耗。如果您浏览this presentation 中的幻灯片 9 到 19,您会看到一些使用 Push 的非常引人注目的数字(注意:此示例使用托管服务,但托管您自己的实时服务器并使用 Push 也有类似的好处 em>)
    • setInterval 调用之间,您的应用中显示的数据可能没有数据。使用推送技术意味着新数据可用的那一刻,它可以被推送并显示在您的应用程序中。您不希望用户在查看应用时认为他们看到的是正确信息,而实际上他们并没有看到。

    您应该回答以下 StackOverflow 问题:

    对于 Python/彗星,请参阅:

    我建议您也开始考虑“WebSockets”以及“Comet”。大多数 Comet 服务器现在更喜欢尽可能使用 WebSocket 连接。

    如果您不想安装和管理自己的 Comet/WebSocket 解决方案,那么您可以使用 realtime hosted service,这将允许您使用 REST API 通过它们推送数据,并且您的客户端可以通过嵌入 JavaScript 库来接收事件并编写一小段代码来订阅和接收事件。

    【讨论】:

      【解决方案2】:

      步骤非常简单:

      1. 编写模型以在 DB 中存储数据
      2. 编写一个视图,该视图将根据 POST 请求生成 JSON 序列化数据。
      3. setInterval()编写一个包含JavaScript的模板 对视图进行 AJAX 请求并呈现接收到的数据。 (我建议使用 JQuery,因为它有据可查且广泛使用)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-31
        • 2012-01-23
        • 1970-01-01
        • 1970-01-01
        • 2011-03-08
        • 1970-01-01
        • 2011-01-13
        • 2011-12-20
        相关资源
        最近更新 更多