`

extjs3.x ajax同步请求

阅读更多

在使用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 + ")");
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics