django - 如何使用 django 信号刷新特定页面
问题描述
我正在创建一个电子商务网络应用程序,并且我想在用户下订单时更新我的管理页面。经过研究,我发现了 Django 信号,但这似乎很混乱。这背后的想法是,当用户下订单时,我希望刷新管理页面并显示最新更新。我尝试了 ajax,但 javascript 只能用于当前打开的页面。任何人都可以通过这种方式帮助我处理 usibg django 信号吗?
解决方案
如果您的想法是刷新用户在浏览器中查看的管理页面,我认为您有点误解。网站访问者查看的页面是根据浏览器的要求检索的。用户可以刷新页面,或者页面脚本可以在计时器上自动刷新(这不是一个很好的解决方案,但很容易)。
Django 无法让浏览器更新页面。
信号可以让django在后端做点什么,但不能解决浏览器负责的问题。
有一种技术旨在允许服务器将内容推送到浏览器:websockets。
如果您使用 websockets(Django 相当新的内置支持称为 Channels ( https://channels.readthedocs.io/en/stable/ )),那么您可以将内容推送到浏览器,页面上的接收脚本将用它做点什么。这是一项非常强大的技术,但如果您从头开始,则需要几个小时的学习曲线。
最近我遇到了这个前端库,它试图让浏览器变得简单:https ://htmx.org/docs/
但是您仍然必须处理运行 websocket 服务器并学习如何将消息发送到 websocket。然而,在它结束时你会觉得自己像个超级英雄,所以就是这样。
推荐阅读
- node.js - 问题以角度加密信息并在节点中解密
- javascript - 如何在两个 CSS 文档之间切换
- c++ - 避免将转换运算符复制到基类的子集
- python - pylint R1720: Unnecessary "elif" after "raise" (no-else-raise)
- windows-10 - 运行 datadog 命令时访问被拒绝
- java - 为什么`javac -cp`不需要`.`,而`java -cp`需要?
- ios - 当服务器远离时,AVPlayer 流式传输时间过长
- c# - CS0103 C# 当前上下文中不存在名称“ViewBag”和“Url”
- sql - 如何识别安装和删除应用程序的用户 - 如何在新架构中使用 UNNEST
- assembly - 如何在我的汇编代码的特定位置使用 INCLUDE 命令?