Sencha Architect 将数据添加到数据库并在同一事件上更新存储内容(计数)
Sencha Architect add data to database and update store content(count) on same event
onAddTap: function(button, e, eOpts) {
Ext.Ajax.request({
url: "http://localhost:96/OrderApplication/order.php?action=postproduct",
method :"post",
params: {
name :Name
}
});
var store = Ext.getStore("myProfiles");
store.load();
console.log(store.getCount());
}
我有这个点击事件,它调用 Ajax 请求并将数据插入数据库 table。
我有一个商店 'myProfiles',它从 table 中获取数据。
但是存储的数据总是落后一条记录。
例如,第一次它将记录计数为 0,而商店应加载 1 条记录。在第二次点击时,它将获得计数 1,同时在数据库 table 中有 2 条记录。我知道我可能做错了什么,因为我是 sencha 架构师和开发的新手。最主要的是我想在同一个点击事件中插入数据并更新商店。
问题是时间问题。这是发生了什么:
- ajax请求被调用
- 存储加载触发第二个 ajax 请求。
- 后端读取存储数据
- 后端更新数据
有两种方法可以实现一致的行为:
首先。根据您当前的代码,您会在完成更新 ajax 调用后触发商店加载。
var store = Ext.getStore("myProfiles");
Ext.Ajax.request({
url: "http://localhost:96/OrderApplication/order.php?action=postproduct",
method :"post",
params: {
name : Name
},
succes : function(){
store.load()
console.log(store.getCount())
}
});
}
第二种方法是:
- 更新 ExtJs 中的商店。
- 同步商店(使用 'store.sync()')。
这样您就不需要自己发出 ajax 呼叫。 ExtJs 正在处理它。您只需要在服务器端处理创建请求。
我会推荐你后者。它允许您为所有表提供一致的后端 API。随着您的应用程序和表数量的增长,这一点尤为重要。
onAddTap: function(button, e, eOpts) {
Ext.Ajax.request({
url: "http://localhost:96/OrderApplication/order.php?action=postproduct",
method :"post",
params: {
name :Name
}
});
var store = Ext.getStore("myProfiles");
store.load();
console.log(store.getCount());
}
我有这个点击事件,它调用 Ajax 请求并将数据插入数据库 table。 我有一个商店 'myProfiles',它从 table 中获取数据。 但是存储的数据总是落后一条记录。
例如,第一次它将记录计数为 0,而商店应加载 1 条记录。在第二次点击时,它将获得计数 1,同时在数据库 table 中有 2 条记录。我知道我可能做错了什么,因为我是 sencha 架构师和开发的新手。最主要的是我想在同一个点击事件中插入数据并更新商店。
问题是时间问题。这是发生了什么:
- ajax请求被调用
- 存储加载触发第二个 ajax 请求。
- 后端读取存储数据
- 后端更新数据
有两种方法可以实现一致的行为:
首先。根据您当前的代码,您会在完成更新 ajax 调用后触发商店加载。
var store = Ext.getStore("myProfiles");
Ext.Ajax.request({
url: "http://localhost:96/OrderApplication/order.php?action=postproduct",
method :"post",
params: {
name : Name
},
succes : function(){
store.load()
console.log(store.getCount())
}
});
}
第二种方法是:
- 更新 ExtJs 中的商店。
- 同步商店(使用 'store.sync()')。
这样您就不需要自己发出 ajax 呼叫。 ExtJs 正在处理它。您只需要在服务器端处理创建请求。
我会推荐你后者。它允许您为所有表提供一致的后端 API。随着您的应用程序和表数量的增长,这一点尤为重要。