有没有办法利用ExtJS的读者,作家,请求等没有商店的能力?像通用的Ajax请求一样?我希望能够定义一个能够接受我在应用程序服务器响应中使用的“数据结构”的读者,并在全球范围内执行函数。例如,如果服务器上任何时候出现错误,就可以有一个特定的应用程序代码,读者可以解释它并构建一个带有错误消息的窗口对话框。
答案 0 :(得分:1)
Reader和Writer实际上是Proxies的配置,其中有一个Ajax版本。您不必拥有商店来使用代理 - 您可以在没有商店的情况下“手动”使用代理。
商店用于将模型与从服务器/本地存储加载的一组记录链接起来。它们也大量用于网格,树木,数据视图等。但如果你坚持不使用它们 - 你可以。
至于问题的第二部分 - 无论您选择哪种类型的服务器通信(Ajax / Rest / Direct),都可以从服务器捕获异常。对于某些人来说,它比其他人有点棘手(请参阅此thread有关Ajax的可能问题)。虽然如果你深入研究一下ExtJS库代码,所有这些都可以很容易地解决。在我的情况下,我使用直接和类似于以下的东西(在应用程序launch()
)捕获几乎所有服务器问题(你只需要确保你的服务器抛出异常):
Ext.direct.Manager.on('exception', function(e, provide, eOpts) {
Ext.MessageBox.alert('Server Error', e.message);
});
要使用AJAX执行类似操作,您将拥有:
Ext.Ajax.on('requestcomplete', function( iConn, iResponse, iOptions, ieOpts ){
// do something with iResponse here
});