如何在jqGrid中对重新加载的网格请求进行排队?或者如何禁用加载?

如何在jqGrid中对重新加载的网格请求进行排队?或者如何禁用加载?,jqgrid,Jqgrid,如果我在GET上加载或重新加载jqGrid需要一段时间来处理,然后调用$(“#myJqGrid”).trigger(“reloadGrid”)在调用第一个进程时,第二个调用从不发出GET请求。有没有办法让他们排队或取消?或者其他处理这个问题的方法?我不想让用户对一堆排队的请求感到困惑,因为他们认为自己刚刚发出的请求得到了响应,但这是第一个请求的结果 如果有一种干净的方法禁止jqGrid在初始加载时进行GET,我认为这对我来说不会有太大问题。最简单的方法是在初始化时使用数据类型:“local”。如

如果我在GET上加载或重新加载jqGrid需要一段时间来处理,然后调用
$(“#myJqGrid”).trigger(“reloadGrid”)在调用第一个进程时,第二个调用从不发出GET请求。有没有办法让他们排队或取消?或者其他处理这个问题的方法?我不想让用户对一堆排队的请求感到困惑,因为他们认为自己刚刚发出的请求得到了响应,但这是第一个请求的结果


如果有一种干净的方法禁止jqGrid在初始加载时进行GET,我认为这对我来说不会有太大问题。

最简单的方法是在初始化时使用
数据类型:“local”
。如果您真的需要使用来自服务器的数据填充网格,则应首先将
数据类型更改为
'json'
'xml'
,然后触发
reloadGrid

$(“#gridId”).jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
jqGrid没有将Ajax请求排队的方法。如果确实需要发出许多连续的Ajax请求,那么应该在
loadComplete
中发出下一个请求。例如,您可以创建一个请求数组,在
loadComplete
中测试该数组是否为空。如果它不是空的,您可以在数组的
setTimeout
回调和调用方法的内部调用
.trigger('reloadGrid')


在大多数情况下,您实际上不需要实现Ajax队列。例如,请参见示例。

不过,更改数据类型对我来说似乎是一种攻击。如果有一个fetchDataOnFirstLoad选项就好了,但是有一个更好的名称。@Bradford:我不是jqGrid代码的所有者。你应该把你所有的建议都发到。你不应该忘记,目前已经有很多不同的选择。您建议的新选项
fetchDataOnFirstLoad
相当于使用
datatype:'local'
和设置
.jqGrid('setGridParam',{datatype:'json'})
,而无需在创建网格后直接重新加载网格。因此,您需要的选项意味着更多
dontLoadDataOnCreate