dgrid的OnDemandGrid不断向服务器发送请求

时间:2013-09-25 08:26:20

标签: dojo dgrid

我有一个OnDemandGrid设置来显示我正在处理的项目的产品数据(称为部件)。我目前在产品数据库中只有两个条目。

我的OnDemandGrid只设置了基本选项:store和columns。我希望它将是一个虚拟滚动网格。商店被设置为JsonRest商店,带有Cache

当我打开页面并启动网格时会发生什么,网格不断向服务器发送请求以获取数据 - 大约每秒2个请求。

我也意识到,对于只有两行的网格,它右侧有一个滚动条。当我尝试使用此滚动条滚动时,我发现网格似乎闪烁并重置自身。多次。

我怀疑虚拟滚动功能正在做一些时髦的事情,不知何故不承认只有两个条目。有人可以帮助我吗?如果有必要,我愿意提供更多细节。

顺便说一下,这是我的代码:

require(["dgrid/OnDemandGrid", "dojo/store/Memory", "dojo/store/Cache"], function(OnDemandGrid, Memory, Cache){

        var partsCache = new Memory();
        App.Store.parts = new Cache(partsMaster, partsCache);

        var grid = new OnDemandGrid({
                store: App.Store.parts,
                columns: {
                    name:'Part Name',
                    part_no:'Part Number'
                },

            }, "grid");

        grid.startup();
    })

partsMaster是一个先前定义的JsonRest存储(目前是全局的 - 将网格转换为旋转)。我已经做了一些测试来安全地确定JsonRest不是问题。

这是当前网格的截图(注意滚动条的存在): enter image description here

感谢任何帮助!

编辑:附件是来自chrome的第一个请求响应标头的屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:1)

根据屏幕截图,您的响应似乎不包括Content-Range标头,这是dojo/store/JsonRest用于通知自己集合中结果总数的内容。虽然我不确定单独会导致你的无限查询问题,但它肯定会引起问题。

Content-Range标题应如下所示: Content-Range: items 0-24/500(假设结果集中的项目总数为500)。

有关JsonRest如何期望服务行为的更多信息,请参阅http://dojotoolkit.org/reference-guide/1.9/quickstart/rest.html

如果这不能完全解决问题,我也很想知道响应主体确实产生了正确的结果子集。

编辑:基于我今天在dgrid问题上的交互,问题可能是您的服务实际上是根据查询返回错误数量的结果。请参阅these comments on #691