使用JQgrid加载实时数据


Live data loading with JQgrid

我有一个使用JQgrid通过XML加载大量数据的系统。真正的性能问题是,每一行都是在php上处理了很长一段时间(计算提取和各种php的好处…),所以我想知道是否有可能得到每一行处理的实时-这意味着网格负载总量是相同的,但用户体验更好,因为他会看到网格慢慢填满…

我将通过更改网格加载方法来实现这一点。与其使用获取数据的简单方法(通过url: 'myXMLData.php'参数在网格中直接访问数据),不如使用对addXmlData的调用来手动填充网格。

基本上,这个过程将是用空值初始化网格,然后向服务器发出请求,开始构建响应。此请求将立即返回,并传回对XML位置的引用,该位置将随着时间的推移而生成。此外,这个初始请求将在服务器上派生一个后台任务,该任务将实际执行处理和XML构造到一个临时缓存位置(在作为引用返回的同一位置构建XML)。在浏览器端,保存该引用,并定期轮询以检查新的XML数据(使用jQuery Ajax方法)。在获得每个轮询的响应后,使用我在上面链接的addXmlData()方法用当前数据集加载jqGrid。当来自服务器的响应包含您期望的所有行时,轮询可以停止。您还需要在服务器上定期运行一个任务来清理XML缓存。