【问题标题】:Sending notifications to users in web applications在 Web 应用程序中向用户发送通知
【发布时间】:2011-03-29 16:10:25
【问题描述】:

我正在使用 Django 开发一个自助餐厅管理系统(我的第一个网络开发项目,所以我是初学者),其中有两种用户 “柜台员工”和“客户”.

现在,当前订单的列表显示为柜台一侧的表格。在客户这边,有一张桌子显示当前可用的菜肴。

有两种类型的事件:-

  1. 客户点餐。
  2. 计数器根据可用性启用/禁用菜肴。

所以,如果顾客点菜,我想加柜台的桌子 对于第二个事件,如果计数器启用/禁用一个菜,我希望客户的边桌添加/删除菜行。

我想要一个实时解决方案。那么,我该如何实现呢?

【问题讨论】:

    标签: javascript jquery ajax django


    【解决方案1】:

    您似乎需要两个用户来轮询服务器。在 JavaScript 中使用计时器每分钟左右向服务器发出请求(这称为轮询)。然后使用 jQuery 强大的遍历和操作实用程序在浏览器中重建表。

    或者,如果您不想使用 JavaScript 来实现更新视图,而是更喜欢坚持使用 Django 的视图呈现方式..

    在服务器上有一个端点,它返回最后一次添加或删除菜肴的时间。有一个计时器,将该时间与呈现页面的时间进行比较。如果添加或删除了一道菜,请通过 JavaScript 刷新页面。如果这样做,请不要将客户端时间与服务器时间进行比较。您需要将服务器时间作为 JavaScript 变量嵌入到页面中。

    【讨论】:

    • 我无法理解您告诉我在没有 javascript 的情况下实现的方式。据我了解,一旦页面加载,django 无能为力。我是 django 新手,所以可能我不知道完整的功能。
    • Django 已经在渲染页面,因此您可以使用 JavaScript 来确定页面是否“脏”,然后使用 JavaScript 从服务器(也称为 Django)重新请求页面。说得通?我不推荐这种方法,因为它需要往返服务器,并剥夺了您使用支持 AJAX 的轻量级 Web 应用程序的好处
    【解决方案2】:

    你可能想看看信号:

    Django Sisgnals

    【讨论】:

      【解决方案3】:

      长轮询是首选解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-06
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多