我开发了一些带有“桌面”、快捷方式和小部件的应用程序。所以,当我打开我的应用程序时,我有很多 AJAX 请求。
它们相互冻结,Firebug 显示响应时间约为 170-250 毫秒,但在 nginx 日志中,所有响应的时间约为 50-60 毫秒。
我该如何解决?我需要构建一些队列,或者使用 Web Workers 等的一些解决方法吗?
谢谢你。
我个人玩过的是,对于初始页面加载,有 1 个 ajax 调用可以完成全部工作,然后在加载时,要么有一个商店工厂,要么找出你加载的数据,然后手动将其发布到店铺。
Ext.onReady(function(){
Ext.Ajax.request({
url: 'page.php',
params: {
id: 1
},
success: function(response){
var text = response.responseText;
var json = Ext.JSON.decode(text);
var store = Ext.data.StoreManager.lookup('myStore')
store.add(json.myStore.records);
// and do for whatever other stores you need to do
}
});
})
一个简单的解决方法是从低级 Ajax 切换到 Ext.Direct 远程处理。它的优点之一是请求批处理,它是内置的并且是自动的。为什么不使用它?
请参阅文档:http ://docs.sencha.com/ext-js/4-1/#!/guide/direct_grid_pt1