JAvascript高度なプログラム設計:ajaxのプラグイン

1664 ワード

1、xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");この設定はpostメソッドのみです
 
2、x-requested-with XMLHttpRequestはAjax非同期要求方式でrequestを使用する.getHeader("x-requested-with");nullであれば、従来の同期要求である.XMLHttpRequestの場合、Ajax非同期リクエストです.
function ajax (url, parms) {
	parms = parms || {};
	var req = new XMLHttpRequest(),
		post = parms.post || null,
		callback = parms.callback || null,
		timeout = parms.timeout || null;

	req.onreadystatechange = function () {
		if ( req.readyState != 4 ) return;

		// Error
		if ( req.status != 200 && req.status != 304 ) {
			if ( callback ) callback(false);
			return;
		}

		if ( callback ) callback(req.responseText);
	};

	if ( post ) {
		req.open('POST', url, true);
		req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	} else {
		req.open('GET', url, true);
	}

	req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

	req.send(post);

	if ( timeout ) {
		setTimeout(function () {
			req.onreadystatechange = function () {};
			req.abort();
			if ( callback ) callback(false);
		}, timeout);
	}
}

  
呼び出し方法:
 
	ajax('dataset.php?start=' + +start + '&count=' + +count, {
		callback: function (data) {
			data = JSON.parse(data);
			myScroll.updateCache(start, data);
		}
	});