javascript - 强制重新加载客户端网页 Django

标签 javascript python django database

我是 Django 开发的新手,想知道是否可以在客户端触发网页刷新。

我的场景: 网页 1 正在被客户浏览。

我更新了一些数据到数据库并希望刷新 view.py 以从数据库中获取新数据并刷新客户端网页以显示新信息。

我怎样才能做到这一点?

谢谢。

最好的问候。

最佳答案

有几个选项:

  • 在您的页面上添加一个脚本,每隔几秒轮询一次 (ajax) 您的服务器以获取最新数据并就地刷新数据(不涉及页面刷新)。为此,您将在 Django 中创建一个以 JSON 格式返回数据的 View ,您的 javascript 将替换 HTML 中的数据。优点:出色的用户体验,页面仍然可用。缺点:不是立竿见影的,您必须考虑可扩展性,因为每个打开的页面都会不断轮询您的服务器,但缓存响应应该很容易。

  • 添加一个脚本来轮询页面是否应该刷新。它会发送某种 token 的版本号来标识页面上的当前数据,并且您的 Django View 可以判断页面是否需要刷新。然后脚本将调用 location.reload() 来刷新页面。优点:无需获取数据,刷新状态可以轻松缓存,缺点:仍然不是即时的,页面刷新发生在用户可能不期望的时候。

  • 使用 websocket 为您的服务器打开永久连接,您可以通过该连接推送新数据(或仅推送事件:“请刷新”)。优点:最佳体验,立即更新,缺点:不适用于旧浏览器,实现和部署复杂。 django-channels会是一个很好的开始。

关于javascript - 强制重新加载客户端网页 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949655/

相关文章:

javascript - 为找到的每个元素创建一个摘录

javascript - 以月、日为单位计算年龄

javascript - 月份为 1 或 2 位数字的日期的正则表达式

python - 扭曲矩阵回调调用一次又一次

Python:如何捕获子进程中接收到的 UNIX 信号?

javascript - Nodejs 事件循环——与顶层代码的交互

python - 向mysql中插入数据

python - 使用 django 管理命令运行 celery 任务

django - 在管理中增加 django-filer 预览/缩略图

django - 在模型函数中使用 Django 过滤器