Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2017, 11:15
Новичок на форуме
Отправить личное сообщение для ivandrova Посмотреть профиль Найти все сообщения от ivandrova
 
Регистрация: 03.04.2017
Сообщений: 2

Ajax в цикле
Добрый день, код ниже отдает:
Счетчик
Счетчик
Счетчик
Счетчик
Счетчик
Данные с url
Данные с url
Данные с url
Данные с url
Данные с url

А я ожидаю
Счетчик
Данные с url
Счетчик
Данные с url
Счетчик
Данные с url
Счетчик
Данные с url
Счетчик
Данные с url

Пожалуйста подскажите что сделано не так?

<input type="button" value="Test" id="testbtn" />
<div id="res"></div>

function ajaxsend(){
    $.ajax({
        type: 'POST',
        url: 'index.php',                
        data:  {t:'test'},
        success: function(res){            
            $("#res").append('Данные с url<br>');
        }
    });
}


$("#testbtn").click(function(){
    for(i = 1; i <= 5; i++) {
        $("#res").append("Счетчик<br>");
        ajaxsend();        
    }        
    });
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2017, 11:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,257

Сообщение от ivandrova
что сделано не так?
Алгоритм ты сделал не так...

Ты 5 раз вывел
Сообщение от ivandrova
$("#res").append("Счетчик<br>");
и запустил 5 запросов
Сообщение от ivandrova
ajaxsend();
Сообщение от ivandrova
А я ожидаю
Счетчик
Данные с url
Счетчик
Данные с url
Счетчик
Данные с url
Счетчик
Данные с url
Счетчик
Данные с url
Тогда нужно нечто такое...

var max=5;
var item=0
function ajaxsend(){
    $.ajax({
        type: 'POST',
        url: 'index.php',                
        data:  {t:'test'},
        success: function(res){            
            $("#res").append('Данные с url<br>');
			if (++item<max) {
				test();
			};
        }
    });
}
$("#testbtn").click(test);
function test(){
    $("#res").append("Счетчик<br>");
    ajaxsend();        
};
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2017, 07:10
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

проще будет сделать запросы синхронными дописав
async: false,
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2017, 08:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,257

Сообщение от SV0L0CH
проще будет сделать запросы синхронными дописав
И таймауты на бесконечность поставить!
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2017, 06:26
Новичок на форуме
Отправить личное сообщение для ivandrova Посмотреть профиль Найти все сообщения от ivandrova
 
Регистрация: 03.04.2017
Сообщений: 2

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
ajax в цикле icom Общие вопросы Javascript 18 01.09.2015 16:52
Ajax в цикле imediasun1 Элементы интерфейса 7 02.09.2013 19:25
как запустить в цикле последовательно две функции вызова ajax Bakhit jQuery 4 24.08.2013 12:13
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52