【问题标题】:Auto Refresh Grid in EXTJS after a record is Inserted on server在服务器上插入记录后,EXTJS 中的自动刷新网格
【发布时间】: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 ,其他用户正在插入记录。在他们上传记录后,值被插入到表中,并且只有在插入之后我的页面才会使用新记录自动刷新。

标签: javascript ajax extjs


【解决方案1】:

一旦发生变化,有多种方法可以从服务器获得即时响应,最兼容的是所谓的“Hanging Request”。

您所做的是向服务器发送请求,而服务器不会立即响应。相反,服务器会等到发生更改(它让请求“挂起”,因此得名),并且仅在此之后或在预定义的超时之后发送回复。 (显然,您的服务器端代码必须支持这种行为)。

这不能用store.load或客户端其他存储功能实现;您将不得不使用Ext.Ajax.request 并手动评估响应,例如从请求回调中调用store.loadRawData 将更改的记录加载到存储中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 2012-07-19
    相关资源
    最近更新 更多