Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.01.2015, 02:27
Аспирант
Отправить личное сообщение для kilohertz_. Посмотреть профиль Найти все сообщения от kilohertz_.
 
Регистрация: 07.12.2014
Сообщений: 31

Объект ajax и приостановка функции
Есть объект, который занимается ajax запросами. Как сделать, что бы функция, из которой был вызван объект ajax как бы приостанавливалась и продолжала выполняться когда придет ответ с сервера?

Объект ajax:
function ajax() { //json object
	this.xhr;
	this.result = {"result":"empty"};
	
	this.send = function(addr, string, method='POST', async=true){
		this.xhr = new XMLHttpRequest();
		this.xhr.open(method,addr,async);
		if(method == 'POST') this.xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		this.xhr.send(string);
		this.xhr.onreadystatechange = this.get;
	}
	
	this.get = function(){
		if(this.xhr.readyState == 4) {
			this.result = JSON.parse(this.xhr.responseText);
			if(this.result.status == 'complete') {return this.result}
			if(this.result.status == 'error') {
				return showMsg(1,this.result.error);
			}
		}
	}
	
	this.ready = function() {}
}


Вызывается отсюда:
function listRegions(node, type, filter=null) {
	var xhr = new ajax();
	
	xhr.send('/ajax/regions.php',string);
	
}
Ответить с цитированием
  #2 (permalink)  
Старый 18.01.2015, 09:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kilohertz_.
async=true
Передай false. Но не советую так делать. Думай асинхронно. Пока унылые колбэки, в будущем - await.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 18.01.2015, 16:04
Аспирант
Отправить личное сообщение для kilohertz_. Посмотреть профиль Найти все сообщения от kilohertz_.
 
Регистрация: 07.12.2014
Сообщений: 31

Я хотел с каллбэком, т.е. передать идентификатор функции, НО как передать каллбэку параметр node?
Ответить с цитированием
  #4 (permalink)  
Старый 18.01.2015, 16:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kilohertz_.
как передать каллбэку параметр node?
Объяви callback-функцию внутри функции listRegions. Так параметр node будет ей доступен.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 18.01.2015, 16:12
Аспирант
Отправить личное сообщение для kilohertz_. Посмотреть профиль Найти все сообщения от kilohertz_.
 
Регистрация: 07.12.2014
Сообщений: 31

Можешь написать пример, как ее тогда вызывать? А то вообще не понимаю(
Ответить с цитированием
  #6 (permalink)  
Старый 18.01.2015, 16:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

xhr.send('/ajax/regions.php',string, function(result){
    // делаем ченить с result. node также в нашей области видимости.
});
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вернуть данные из ajax функции laandrew Общие вопросы Javascript 5 15.12.2012 16:44
Проблема с вызовом функции внутри Ajax Archiolidius jQuery 1 12.12.2012 19:40
Вызов конкретной функции класса на php AJAX запросом Slavenin AJAX и COMET 8 03.06.2011 22:47
тест magistr_bender Оффтопик 44 25.10.2008 19:28
Получение ссылки на объект из метода Octane Общие вопросы Javascript 7 21.08.2008 15:09