我是一个新手,我正在django制作一个网络应用程序,在其中我有一个显示任务对象列表的页面.
我想知道如何在不刷新页面的情况下更新此对象列表,这样如果创建了新对象,它将自动显示在页面上.
我对ajax有一些了解但是,我不知道如何实现这个目标.
TIA
您正在描述从服务器到客户端(Web浏览器)的"推送"数据
Django主要用于响应请求,即客户端要求从服务器"提取"一些数据.
您可以按照常见教程通过Ajax进行拉取.
您可以通过采用"轮询"方法来模拟通过Ajax的"推送",其中客户端定期向服务器请求更新,即使用setInterval
重复进行Ajax调用.
要使用Django做真正的推动,你将不得不探索除Ajax以外的其他技术,Django将需要一些帮助/黑客来使用它们,必须在非常特定的Web服务器平台上运行等.
如果你在Django中构建你的第一个webapp,我会建议你首先避免尝试推送更新,只需专注于构建应用程序并学习Django.
但要回答这个问题,推送数据的选项是:
HTML5服务器发送的事件
HTTP"长轮询"
Web套接字
有关在Django中使用这些问题的更多信息,请参阅以下问题:
如何在django中构建推送系统?
WebSockets与Server-Sent事件/ EventSource
Django是否有办法打开HTTP长轮询连接?
Django的一些帮助:
https://github.com/niwibe/django-sse
https://github.com/tbarbugli/django_longpolling
https://github.com/stephenmcd/django-socketio