如何将通知推送到浏览器窗口
How to push notifications to a browser window?
我有一个Django应用程序,它在后台运行计算。计算时间在5秒到2分钟之间。
我正在运行这些芹菜。它正在更新数据库中的一个表。
我正在做一个页面上的DIV的自动刷新每2秒,这本质上做一个SQL查询。这意味着在显示某些数据之前会执行许多不必要的SQL查询。不用说,这会增加数据库的负载。
是否有一种方法只在表更新时触发刷新?
如果后台任务被分配给一个特定的用户,您可以使用会话数据来指示任务已经完成。在Ajax函数中,您可以查看此会话数据,并且只有在有指示完成时才查看数据库:
https://docs.djangoproject.com/en/1.8/topics/http/sessions/另一个解决方案是使用系统文件,用于同步。例如:
- 创建后台任务时创建的文件,包含开始日期和时间。
- 只要文件存在(通过进一步检查超时,检查文件中的数据),就不需要查看数据库。
- 如果文件不存在,你知道请求已经完成,你可以查看数据库来更新。
这个文件也可以作为Url访问(为了避免Ajax请求)
也许你应该使用Jquery和ajax来做这个请求。
http://api.jquery.com/category/deferred-object/希望对你有所帮助
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用特定大小的浏览器窗口打开我的页面
- Flash AS3关闭浏览器窗口
- 如何打开/移动主屏幕左侧的浏览器窗口
- 使用 javascript 打开新的浏览器窗口时出错
- 如何在浏览器窗口变大/变小时捕捉元素的宽度
- 更改当前选项卡或浏览器窗口的标题
- 如何相对于浏览器窗口定位DIV
- 浏览器窗口中的应用内FB页面插件链接
- 在浏览器窗口中创建动态灵活的分割标记
- 基于浏览器窗口大小的条件 JavaScript 执行
- 关闭黑莓浏览器窗口 JavaScript
- 如何在缩放时获取移动浏览器窗口的宽度
- 接受从另一个浏览器窗口拖放图像
- 从扩展的 javascript 中获取 Firefox 浏览器窗口句柄
- 如何将宽度和高度变量设置为浏览器窗口的宽度和高度
- 在浏览器窗口大小调整时更改 JS 逻辑
- 调整大小后更改浏览器窗口的宽度
- 如何在浏览器窗口底部的直线上绘制圆圈数组
- 如何防止高图工具提示弹出隐藏,在图形区域或浏览器窗口上调整大小