我是 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/