Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.12.2013, 19:30
Интересующийся
Отправить личное сообщение для gradus Посмотреть профиль Найти все сообщения от gradus
 
Регистрация: 18.02.2011
Сообщений: 24

отмена ajax запроса
Здравствуйте!
Я в js не особо разбираюсь...
Написал код, в котором предыдущие ajax запросы отменяются.
Работает относительно, отменяет запросы (судя по логам снифера), но если "долбить" по клаве в инпуте, то отменяются все запросы включая последнего.

Почему так происходит ?
Как можно выйти из подобной ситуации ?

$(document).ready(function () {
	$("#search_group").keyup(function (e) {
		var val=$(this).val();
		if(val!=''){
			groups_search(val,function(o){});
		}
    });
});

function stop_ajax(ajax){
	if(ajax){
		ajax.abort();
	}
}

var groups_search=function(name,usefunc){
	var oldAjax=null;
	this.search=function(){
		stop_ajax(this.oldAjax);
		this.oldAjax=$.ajax({
			type: 'POST',
			 url: '/groups/search/',
			data: {nameSearch: name},
			dataType: 'json',
			success: function (data) {
				var st = data && data != '' ? 'success' : 'void';
				usefunc({'status': st, 'result': data});
			},
			error: function (event, request, settings, error) {
				usefunc({'status': 'error', 'result': null});
			}
		});
	}
	this.search();
}
Ответить с цитированием
  #2 (permalink)  
Старый 17.12.2013, 23:48
Интересующийся
Отправить личное сообщение для gradus Посмотреть профиль Найти все сообщения от gradus
 
Регистрация: 18.02.2011
Сообщений: 24

Такая ошибка происходит когда задействуешь сочетание клавиш. К примеру ctrl+a.
Если заменить keyup на keypress, то сочетание клавиш проходит успешно, НО если зажать и держать одну клавишу, происходит аналогичная проблема.
втф...
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2013, 13:10
Интересующийся
Отправить личное сообщение для gradus Посмотреть профиль Найти все сообщения от gradus
 
Регистрация: 18.02.2011
Сообщений: 24

тупанул)))
Тут в примере указал второй аргумент в вызове функции
groups_search(val,function(o){});

а на самом деле вызывал
groups_search(val);

Теперь, все работает как надо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка данных во время AJAX запроса user783 AJAX и COMET 5 09.12.2011 03:24
Как приостановить выполнение скрипта до получения результата AJAX запроса? Хиросим AJAX и COMET 9 31.10.2011 10:56
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
отмена запроса HelpeR AJAX и COMET 5 16.02.2010 16:24
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23