在使用extjs3.3的过程中,发现extjs3.x已经把extjs2.x中的ajax同步请求的方法(Ext.lib.Ajax.getConnectionObjec)干掉了,那如何时好?在一些特定场合下,还是需要ajax的同步请求来能满足需求!很简单,extjs3.x既然指导这个方法去掉了,那我们自行把这个方法还不行吗?!把以下代码放到一个js文件中,使用的时候把此js文件引进页面即可。
Ext.lib.Ajax.getConnectionObject = function() {
var activeX = ['MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
function createXhrObject(transactionId) {
var http;
try {
http = new XMLHttpRequest();
} catch (e) {
for (var i = 0; i < activeX.length; ++i) {
try {
http = new ActiveXObject(activeX[i]);
break;
} catch (e) {
}
}
} finally {
return {
conn : http,
tId : transactionId
};
}
}
var o;
try {
if (o = createXhrObject(Ext.lib.Ajax.transactionId)) {
Ext.lib.Ajax.transactionId++;
}
} catch (e) {
} finally {
return o;
}
};
以下是一个简单的使用例子:
var conn = Ext.lib.Ajax.getConnectionObject().conn;
conn.open("POST", "YourRequestUrl", false);
conn.send(null);
var result = eval("(" + conn.responseText + ")");
本文介绍了如何在使用ExtJS3.x时,绕过其移除AJAX同步请求方法的问题,提供了自定义实现该功能的代码示例,并展示了如何在页面中正确使用该方法。
275

被折叠的 条评论
为什么被折叠?



