LINUX.ORG.RU

История изменений

Исправление Eddy_Em, (текущая версия) :

Обязательно ли делать функцию-обработчик - глобальной?

Не обязательно. Вот тебе примерчик:

function sendrequest(CGI_PATH, req_STR, fn_OK){
	var timeout_id, str;
	var request = new XMLHttpRequest();
	request.open("POST", CGI_PATH, true);
	request.setRequestHeader("Accept-Charset", "koi8-r");
	request.overrideMimeType("multipart/form-data;");
	request.onreadystatechange=function(){
		if(request.readyState == 4){
			if(request.status == 200){
				clearTimeout(timeout_id);
				fn_OK(request);
			}
			else{
				clearTimeout(timeout_id);
				alert("Error: can't connect to data server");
				fn_OK(request); // фигасе, вот это у меня дырищи в коде!
			}
		}
	}
	request.send(req_STR);
	timeout_id = setTimeout(function(){
			request.onreadystatechange=null; request.abort();
		}, 1500);
}

Исходная версия Eddy_Em, :

Обязательно ли делать функцию-обработчик - глобальной?

Не обязательно. Вот тебе примерчик:

function sendrequest(CGI_PATH, req_STR, fn_OK){
	var timeout_id, str;
	var request = new XMLHttpRequest();
	request.open("POST", CGI_PATH, true);
	request.setRequestHeader("Accept-Charset", "koi8-r");
	request.overrideMimeType("multipart/form-data;");
	request.onreadystatechange=function(){
		if(request.readyState == 4){
			if(request.status == 200){
				clearTimeout(timeout_id);
				fn_OK(request);
			}
			else{
				clearTimeout(timeout_id);
				alert("Error: can't connect to data server");
				fn_OK(request);
			}
		}
	}
	request.send(req_STR);
	timeout_id = setTimeout(function(){
			request.onreadystatechange=null; request.abort();
		}, 1500);
}