Показать сообщение отдельно
  #1 (permalink)  
Старый 09.02.2015, 17:19
Аспирант
Отправить личное сообщение для solomon2 Посмотреть профиль Найти все сообщения от solomon2
 
Регистрация: 10.01.2012
Сообщений: 39

Выполнение кода с интервалами
При загрузке страницы со нее собираются все ссылки в массив.
Далее ссылки необходимо частями отправить на сервер ajax-ом, с интервалами между каждой 10-й отправкой, чтобы не вешать страницу браузера, т.к. от сервера еще получается ответ по каждой из ссылок. (10 ссылок отправили, перерыв 5 секунд, далее следующие 10 и т.д.)

Ниже код, никак не могу разобраться как верно написать. В текущем варианте код не попадает в эту часть if(i !=0 && i%10==0). Помогите, пожалуйста, разобраться, мозги уже плавятся..

var nCut = 0,
	hrefArr2 = [];

cutDatalinks('');

function cutDatalinks(hrefArr2){
	var cutHrefArr = []; // минимассив для отправки ссылок частями
	if(hrefArr2==''){
		hrefArr2 = hrefArr; // hrefArr - массив со всеми ссылками собранными со страницы
	}
	for(i=nCut;i<hrefArr2.length;i++){
		if(i==10){
			//ставим интервал через который запустить эту же функцию
			var cutInterval = setInterval(cutDatalinks(hrefArr2), 5000);		
		}
		if(i==hrefArr2.length-1){
			//прекратить работу интервалов
			clearInterval(cutInterval);
			//передаем минимассив cutHrefArr в метод, который направляет ссылки серверу
			getData('', '', cutHrefArr);
			//обнуляем минимассив cutHrefArr
			cutHrefArr.length = 0;
			nCut = 0; //устанавливаем начало счетчика
		}
		cutHrefArr.push(hrefArr2[i]);
		console.log('1 - ' + i);
		if(i !=0 && i%10==0){// целое число
			console.log('2 - ' + i);
			//передаем минимассив cutHrefArr в метод, который направляет ссылки серверу
			getData('', '', cutHrefArr);
			//обнуляем минимассив cutHrefArr
			cutHrefArr.length = 0;
			nCut = nCut + 10; //устанавливаем начало счетчика
			break;
		}
	}
}

Последний раз редактировалось solomon2, 09.02.2015 в 17:55.
Ответить с цитированием