在服务器上插入记录后,EXTJS 中的自动刷新网格
Posted
技术标签:
【中文标题】在服务器上插入记录后,EXTJS 中的自动刷新网格【英文标题】:Auto Refresh Grid in EXTJS after a record is Inserted on server 【发布时间】:2017-09-15 10:28:24 【问题描述】:我正在使用 EXTJs4,并且我只想在将记录插入数据库后重新加载网格。目前我正在使用任务运行器每 1 分钟重新加载一次商店。 这是示例:
var store = grid.getStore();
var refreshTask =
run: function()
store.reload();
,
interval: 60 * 1000
;
Ext.util.TaskRunner.start(refreshTask);
我不确定如何编写一个仅在将数据插入数据库时重新加载的函数?
【问题讨论】:
你可以使用 async/await 来实现你的目标 行是如何插入的?通过您的应用或其他用户使用其他方式? @LorenzMeyer ,其他用户正在插入记录。在他们上传记录后,值被插入到表中,并且只有在插入之后我的页面才会使用新记录自动刷新。 【参考方案1】:一旦发生变化,有多种方法可以从服务器获得即时响应,最兼容的是所谓的“Hanging Request”。
您所做的是向服务器发送请求,而服务器不会立即响应。相反,服务器会等到发生更改(它让请求“挂起”,因此得名),并且仅在此之后或在预定义的超时之后发送回复。 (显然,您的服务器端代码必须支持这种行为)。
这不能用store.load
或客户端其他存储功能实现;您将不得不使用Ext.Ajax.request
并手动评估响应,例如从请求回调中调用store.loadRawData
将更改的记录加载到存储中。
【讨论】:
以上是关于在服务器上插入记录后,EXTJS 中的自动刷新网格的主要内容,如果未能解决你的问题,请参考以下文章
EXTJS 5.0:无限网格滚动不适用于商店中的 extraParams
以编程方式将记录添加到 ExtJS 中的网格后切换单元格编辑器