我所处的情况是,我有数千条或数据库记录。由于内存限制,我无法一次性加载所有这些记录。
因此,我打算做的是,使用ajax请求请求1000个记录,并将其加载到slickgrid
中,然后在后台以同样的方式逐步加载其他记录,直到加载所有数据(比如50,000个记录)。
应该加载前1000条记录,并在后台添加后续记录。这样,即使整个数据集尚未完成加载,用户也可以开始筛选、排序等。
我看过ajax示例:
http://mleibman.github.io/SlickGrid/examples/example6-ajax-loading.html
但是,它并不满足我的动态加载需求。
我的问题是,这能很容易地完成吗?如果是这样的话,我需要考虑哪些光滑的网格函数。
发布于 2017-01-09 16:36:09
第一反应
dataView = new Slick.Data.DataView({});
dataView.beginUpdate();
dataView.setItems(yourjsondata);
dataView.endUpdate();
加载第一个1000条记录
因为您没有id列,所以您可以迭代响应并添加一个uuid,或者只是增加一个计数器,然后添加我也没有id,这就是我处理它的方式
所有其他ajax响应
dataView.beginUpdate();
for(var i = 0; i < yourjsondata.length; i++) {
dataView.setItem(yourjsondata[i]);
}
dataView.endUpdate();
我强烈建议对所有ajax响应进行所有数据检索,但web工作者中的第一个响应除外,这样您就不会阻止ui workers
您将不得不使用普通的js来使ajax请求不包含jQuery。在您的工作程序中,只需构建一个对象数组,然后在最后一个响应中将其发回主线程。
self.postMessage(yourobjectarray);
注意,这一切都在工作,但不是开源的。可以共享更多的代码片段,但不能发布全部内容
https://stackoverflow.com/questions/20583117
复制