如何自动从服务器获取新数据?
Posted
技术标签:
【中文标题】如何自动从服务器获取新数据?【英文标题】:How to automatically fetch new data from server? 【发布时间】:2013-12-28 22:33:41 【问题描述】:我是一个新手,我正在用 django 制作一个网络应用程序,其中我有一个显示任务对象列表的页面。
我想知道如何在不刷新页面的情况下更新此对象列表,以便在创建新对象时自动显示在页面上。
我对 ajax 有一些了解,但是我不确定如何实现这一点。
TIA
【问题讨论】:
@Vland 实际上这在任何 Django 入门教程中都没有涉及,因为他描述的是从服务器到客户端的“推送”数据,而不是 Ajax 的“拉取”……典型的 Django 安装,按照基本的入门指南,不能这样做 @Vland 我都做了,但没有找到太多帮助,这就是我在这里问的原因。非常感谢任何帮助。 【参考方案1】:您正在描述从服务器向客户端(网络浏览器)“推送”数据
Django 主要设计用于响应请求,即客户端要求从服务器“拉”一些数据。
您可以按照常用教程通过 Ajax 进行拉取。
您可以通过“轮询”方法模拟通过 Ajax 的“推送”,即客户端定期向服务器请求更新,即使用 setInterval
重复进行 Ajax 调用。
要使用 Django 进行真正的推送,您将不得不探索除 Ajax 之外的其他技术,而 Django 需要一些帮助/黑客才能使用它们,必须在非常特定的 Web 服务器平台上运行等。
如果你是在 Django 中构建你的第一个 web 应用程序,我建议你避免一开始就尝试推送更新,而只专注于构建应用程序和学习 Django。
但要回答这个问题,推送数据的选项是:
html5 服务器发送的事件 HTTP“长轮询” Web 套接字有关在 Django 中使用这些问题的更多信息,请参阅这些问题:How to build a push system in django?WebSockets vs. Server-Sent events/EventSourceDoes Django have a way to open a HTTP long poll connection?
一些 Django 助手:https://github.com/niwibe/django-ssehttps://github.com/tbarbugli/django_longpollinghttps://github.com/stephenmcd/django-socketio
【讨论】:
以上是关于如何自动从服务器获取新数据?的主要内容,如果未能解决你的问题,请参考以下文章