如何在Django中的服务器上更改数据库时更改客户端上的HTML

时间:2016-03-05 21:17:29

标签: html django sqlite sockets

我正在开发一个Django在Beaglebone板上运行的项目。 Beaglebone通过wifi棒连接到无线路由器。多个设备(计算机,智能手机)连接到无线路由器以访问Django应用程序。该应用程序使用SQLite DB来存储一些信息。每当设备访问Django应用程序时,都会呈现HTML页面(包含来自DB的信息)。设备可以执行将更新/更改数据库中表格内容的操作。

我的问题是:如果任何连接的设备导致存储在Beaglebone板上的数据库发生更改而无需手动刷新HTML页面,是否可以更新所有当前连接的设备上呈现的HTML页面?我不能使用其他端口/套接字,所以我不认为事件监听器是一种选择。有人建议在HTML呈现页面(使用JS)中放置一个计时器/超时,它将持续向服务器发送请求(使用GET / POST),服务器将发回更改的数据。但是,我认为这不是一个好主意。想象一下,连接到服务器的5,6个设备不断发送请求。在我看来,这可能会导致无线网络拥塞。

有关如何解决此问题的任何想法将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试JQuery。当您检测到数据库中将影响客户端的更改时,您可以不断更新客户端的视图。只有这样,您才会向客户端发送响应,该响应将更改视图中的数据,但不会更改整个页面。这将阻止客户重新加载他们的页面。