django - 如何自动从服务器获取新数据?

标签 django jquery

我是一个新手,我正在 django 中制作一个网络应用程序,其中我有一个显示任务对象列表的页面。

我想知道如何在不刷新页面的情况下更新此对象列表,以便在创建新对象时它会自动显示在页面上。

我对ajax有一些了解,但我不知道如何实现这一点。

TIA

最佳答案

您正在描述从服务器到客户端(网络浏览器)的数据“推送”

Django 主要设计用于响应请求,即客户端请求从服务器“拉取”一些数据。

您可以按照常见教程通过 Ajax 进行拉取。

您可以通过采用“轮询”方法来模拟通过 Ajax 进行的“推送”,其中客户端定期向服务器请求更新,即使用 setInterval 重复进行 Ajax 调用。

要使用 Django 进行真正的推送,您必须探索 Ajax 之外的其他技术,而 Django 将需要一些帮助/技巧来使用它们,必须在非常特定的 Web 服务器平台上运行等。

如果您正在 Django 中构建您的第一个 Web 应用程序,我建议您首先避免尝试进行推送更新,而只专注于构建应用程序和学习 Django。

但是为了回答这个问题,推送数据的选项是:

  • HTML5 服务器发送的事件
  • HTTP“长轮询”
  • 网络套接字

请参阅这些问题以获取与在 Django 中使用这些相关的更多信息:
How to build a push system in django?
WebSockets vs. Server-Sent events/EventSource
Does Django have a way to open a HTTP long poll connection?

Django 的一些助手:
https://github.com/niwibe/django-sse
https://github.com/tbarbugli/django_longpolling
https://github.com/stephenmcd/django-socketio

关于django - 如何自动从服务器获取新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20820115/

相关文章:

javascript - 如何在django中使用ajax post请求发送文件

javascript - 如何阻止用户打印网页?使用 javascript 或 jquery

python - Django - 确定地理坐标是否在圆内

python - Django URL 到 View 的映射

Python多处理池卡在ubuntu服务器上

带有 s3-boto 的 django-storage 破坏浏览器缓存

jquery - 重定向后由 jQuery 重置的背景图像

javascript - 如何从 jQuery 中的变量中删除换行符和空格

javascript - 如何使用 jQuery() 获取前一个 <div> 元素文本?

django - 对 FormView 中的 get_form_kwargs 感到好奇