上一篇主要是扎扎实实地翻译了一下Ext.data.Connection的官文档。尽管网上有位大侠也搞了个中文文档,但是,有不少遗漏的地方。这篇主要是研究一下文档中有些语焉不详的地方,这些问题只能透过研究代码来解释了。
一、Ext.data.Connection是否有依赖的模块
有。它建立在一个适配器类:Ext.lib.Ajax的基础之上,有人看了Ext.js的代码,发现,Ext貌似没有什么底层适配器,事实上,是有的,Ext.lib.Ajax提供了对XMLHttpRequest对象的底层的封装(我直接用ext-base.js)。
二、在options中哪些东西会被编码到url后面
params、extraParams、form。
三、url参数与jsonData、xmlData的关系
这是个非常重大的问题,且见Connection的代码:
if((method == 'GET' || o.xmlData || o.jsonData) && p){
url += (url.indexOf('?') != -1 ? '&' : '?') + p;
p = '';
}
看这三行代码,觉得实在讲不清啦。但是,至少一件事是明白的:如果定义了xmlData、jsonData,且又定义了params/extraParams/form,那么并不会造成参数无用。还是照样传过去了的。
至于xmlData与jsonData的优先级关系,这个要看Ext.lib.Ajax的源码了。源码如下:
??????????????? if(options.xmlData){
??????????????????? if (!hs || !hs['Content-Type']){
??????????????????????? this.initHeader('Content-Type', 'text/xml', false);
??????????????????? }
??????????????????? method = (method ? method : (options.method ? options.method : 'POST'));
??????????????????? data = options.xmlData;
??????????????? }else if(options.jsonData){
??????????????????? if (!hs || !hs['Content-Type']){
??????????????????????? this.initHeader('Content-Type', 'application/json', false);
??????????????????? }
??????????????????? method = (method ? method : (options.method ? options.method : 'POST'));
??????????????????? data = typeof options.jsonData == 'object' ? Ext.encode(options.jsonData) : options.jsonData;
??????????????? }
可见,如果同时定义了xmlData和jsonData,那么将按发送xmlData中的数据,jsonData中的数据被忽略。
四、那个disableCaching倒底有什么鸟用?
貌似是否使用缓存的意思?文档让人郁闷,且见代码:
if(method == 'GET' && (this.disableCaching && o.disableCaching !== false) || o.disableCaching === true){
url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime());
}
原来是加个时间参数。拜托了。搞得我们一头的雾水啊。
?
至此,关于Ext.data.Connection的相关问题都差不多扫清,它的使用例子,前面的“通信篇”中有代码。可以参见。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huoyanxueren/archive/2008/07/16/2662902.aspx
详细解决方案
extJs 2.1学习札记(Ext.data.Connection篇二)
热度:205 发布时间:2012-11-25 11:44:31.0
相关解决方案
- Extjs grid 失去选中行的列数据
- extjs 后台有数据,但是返回到页面为空,jsonStore加载错误,这是咋回事
- ENCTYPE="multipart/form-data"文件下传有关问题
- enctype="multipart/form-data"的页面中,获取普通表单中文值,
- Spring Data 的有关问题
- JSP向SQL数据库中写下数据时提示:Network error IOException: Connection refused: connect
- S2SH、EXTJS、JSON调整后,EXTJS接收不到Struts2的Action传回的值,无语
- extjs 简单有关问题
- extjs+struts2解决办法
- java.lang.UnsupportedOperationException: The user must supply a JDBC connection,该怎么处理
- 在jsp页面下导入.xls文件,报错:Posted content type isn't multipart/form-data
- ASP上Set GetSession("conn")=server.CreateObject("adodb.connection")
- ExtJs 处理 datetime 有关问题
- 对 java.sql.Connection 的commit方法理解有关问题
- 运用HttpURLConnection抓取google搜索结果,总是报错:java.net.SocketException: Connection reset
- iReport中应用JavaBean作为Table的数据源:The supplied java.sql.Connection object is nul
- jsp页面未加载完毕被关闭,抛java.net.SocketException: Connection reset by peer: socket write,该如何处理
- 【EXTJS】iframe里嵌套ext.window,怎样使ext.window弹出到iframe外,该怎么解决
- ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error,该如何解决
- 关于HttpURLConnection:Connection timed out: connect 有关问题
- Connection aborted by peer 错误,求高手
- Software caused connection abort: socket write error解决方案
- Tomcat + extjs 入门有关问题
- extjs ColumnModel 怎么实现表格中的数据小数点对齐
- connection as SYS should be as SYSDBA or SYSOPER解决办法
- java.sql.SQLException: Io 错误: Connection refused
- 关于enctype="multipart/form-data"及过滤器的怪异有关问题~
- spring data jpa查询有关问题
- java.net.ConnectException: Connection refused,该怎么处理
- Extjs 变量前的一个加号代表什么意思?解决方法