我的 Django 应用程序显示来自数据库的数据。这些数据在没有用户干预的情况下发生变化,即在幕后。每当它发生变化时,我希望网页能够更新更改的部分而无需重新加载整个页面。
很明显,AJAX 跃入脑海。当页面最初加载(或手动加载,稍后完全重新加载)时,呈现的模板加载一个运行 window.onload = update("all"), update(...) 的 JavaScript 依次触发许多 XMLHTTPRequests它再次返回数据,这些数据被转换为相应部分的 HTML 片段。一切正常。在初始页面加载时。
现在我发现自己处于一个将新对象保存到数据库的 Python 函数中。
如何让浏览器运行 update(...) ?
我是否需要以某种方式手动向映射到 View 的 url 发出请求,该 View 又呈现包含运行 update(...) 的 JavaScript 代码的模板???天哪!
我觉得我没有遵循通常的方法。 也许我只是站在问题面前。
谁能帮帮我?
最佳答案
2021 年更新:使用 channel :https://channels.readthedocs.io/en/latest/
你有两个选择
- 让浏览器使用 setTimeout() 轮询
- 研究 Comet——这是一种将数据从服务器推送到浏览器的技术。
这是关于 Comet in Django 的文章
关于javascript - 如何在不重新加载页面的情况下更新 Django 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1836861/