jQuery实现网页上的实时数据

5
我需要一个网页,可以随着新数据的到来不断更新图表。通常,在请求开始时会将所有现有数据传递给页面。但是,我需要页面能够每隔几秒钟更新一次以获取新信息并重新绘制图表。
背景
该网页将类似于此http://www.panic.com/blog/2010/03/the-panic-status-board/。传入的数据将是由Arduino测量并保存到Django数据库中的温度值(此部分已经完成)。
更新
听起来解决方案是使用jQuery.ajax()函数(http://api.jquery.com/jQuery.ajax/),并使用函数作为.complete回调,几秒钟后将计划另一个请求到返回JSON格式数据的URL。
如何安排该方法?使用.delay()函数吗?
2个回答

6

因此,该页面必须定期执行jQuery.ajax调用,其中url参数设置为服务器的URL,服务器返回最新的、最新的信息(可能只是相对于客户端具有信息的最后一时刻的增量-客户端可以在Ajax调用中发送该时刻作为查询参数),最好以JSON格式提供。异步请求完成时的回调可以安排未来几秒钟的下一个ajax调用,然后重新绘制图形。

事实上,在服务器端使用Django似乎并不那么关键 - 毕竟,服务器只需要将一堆数据格式化为JSON并发送回来即可。


1
没错,Django与此几乎没有什么关系。唯一的例外是当更新频率是随机的且刷新很昂贵时。在这种情况下,您需要实现某种形式的长轮询。 - Stijn Debrouwere
这个方法会是什么样子?调度会使用.delay()吗? - Steven Hepting
@StevenпјҢжҲ‘еңЁиҖғиҷ‘дҪҝз”ЁjQuery.schedulerжҸ’件пјҢhttp://trainofthoughts.org/blog/2007/02/15/jquery-plugin-scheduler/пјҢдҪҶеҪ“然иҝҳжңүе…¶д»–еҮ з§Қж–№жі•еҸҜдҫӣйҖүжӢ©гҖӮ - Alex Martelli

0

如果数据由即时生成的图形组成,您可以通过Django以gif、png或任何其他图形格式提供它们,并逐个重新加载每个图形,甚至一次性重新加载整个页面。

这取决于负载和性能要求,但您可以简单地重新加载整个页面,然后,如果必要,使用AJAX重新加载每个特定部分(使用jQueryprototype进行更新非常容易)。如果您预计有大量数据,则应更改为在客户端上生成图形,仅使用JSON增量数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接