Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.03.2015, 18:40
Аспирант
Посмотреть профиль Найти все сообщения от newuser1001
 
Регистрация: 24.03.2015
Сообщений: 92

Сообщение от icom
переходило на следующую итерацию только тогда, когда завершится аякс запрос, как сделать задержку или что-то подобного рода?
А в чем проблема то? Используйте синхронные запросы, так оно и будет.
Ответить с цитированием
  #12 (permalink)  
Старый 26.03.2015, 00:47
Интересующийся
Отправить личное сообщение для icom Посмотреть профиль Найти все сообщения от icom
 
Регистрация: 15.11.2014
Сообщений: 10

tsigel почти сделал по вашему примеру, но как в data запихнуть в Item2.1 еще и Item3.3 зная только родителя Item2.1

и как удалить Item3.1 например, есть простой способ? или нужно перебирать весь массив каждый раз
Ответить с цитированием
  #13 (permalink)  
Старый 26.03.2015, 00:52
Интересующийся
Отправить личное сообщение для icom Посмотреть профиль Найти все сообщения от icom
 
Регистрация: 15.11.2014
Сообщений: 10

Сообщение от newuser1001
А в чем проблема то? Используйте синхронные запросы, так оно и будет.
пробовал, итерация в цикле продолжалась все равно
Ответить с цитированием
  #14 (permalink)  
Старый 26.03.2015, 07:44
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

icom,
Синхронные запросы использовать не стоит, они вешают браузер пока не придет ответ.
Сообщение от icom
tsigel почти сделал по вашему примеру, но как в data запихнуть в Item2.1 еще и Item3.3 зная только родителя Item2.1

и как удалить Item3.1 например, есть простой способ? или нужно перебирать весь массив каждый раз
то есть у вас данные в куках хранятся не в виде дерева?
Ответить с цитированием
  #15 (permalink)  
Старый 26.03.2015, 08:01
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

icom,
Ну я не знаю как ещё помочь, выложите пример тех объектов по которым надо отправить запрос
Ответить с цитированием
  #16 (permalink)  
Старый 26.03.2015, 09:07
Аспирант
Посмотреть профиль Найти все сообщения от newuser1001
 
Регистрация: 24.03.2015
Сообщений: 92

Сообщение от icom
пробовал, итерация в цикле продолжалась все равно
Не может быть такого.
Ответить с цитированием
  #17 (permalink)  
Старый 01.09.2015, 16:21
Интересующийся
Отправить личное сообщение для icom Посмотреть профиль Найти все сообщения от icom
 
Регистрация: 15.11.2014
Сообщений: 10

прошло 4 месяца и я решил опять вернутся к задачи)

window.addEvent('domready', function(evt) {
        if (typeof(getCookie) == 'function') {
			var ids_array = getCookie('ids_array');
			
			if (ids_array) {
				var ids_obj = JSON.parse(ids_array);
				
				var toRequest = [];
				var getDataToRequest = function(data) {
					toRequest.push(data.name);
					if (data.content) {
						data.content.forEach(getDataToRequest);
					}
				};
				
				getDataToRequest(ids_obj);
				
				var $ = {
					get: function(data, success) {
						function getRandomInt(min, max) {
							return Math.floor(Math.random() * (max - min + 1)) + min;
						}
						
						setTimeout(function () {success(data)}, getRandomInt(1000, 2000));
						
						if (typeof $(data) !== 'undefined') {
							if ($(data).hasClass('namesc_sub')) {
								SDD.checkSubs(parseInt(data.substr(11)));
							} else if ($(data).hasClass('namesc')) {
								SDD.checkSub(data);
							}
						}
					}
				};
			
				var request = function(arr) {
					$.get(arr.shift(), function(data) {
						console.log(data + " loaded!");
						
						if (arr.length) {
							request(arr);
						} else {
							alert("Все загружено!");
						}
					});
				};
				
				request(toRequest);
			}
		}
    });


вопрос, куда впихнуть код, который находится в 26 строке, он и вызывает аякс запросы
if (typeof $(data) !== 'undefined') {
							if ($(data).hasClass('namesc_sub')) {
								SDD.checkSubs(parseInt(data.substr(11)));
							} else if ($(data).hasClass('namesc')) {
								SDD.checkSub(data);
							}
						}

и как $.get переделать под mootools, я так понимаю что var $ = { переопределяет переменную (функцию, хз как точно сказать) mootools

Последний раз редактировалось icom, 01.09.2015 в 16:29.
Ответить с цитированием
  #18 (permalink)  
Старый 01.09.2015, 16:40
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

icom,
код который написан с 18 по 34 строку я писал просто чтобы показать видимость аякс запроса. Это эмуляция. уберите его и подлключите jQuery или библиотеку со схожим аякс интерфейсом. Сам запрос стартует в 37 строке. То что у вас на 26 вообще уберите и скажите что хотели этим кодом. На строке 39 я оставил место для вашего кода. Этот код вызывается при при получении каждого ответа.
Ответить с цитированием
  #19 (permalink)  
Старый 01.09.2015, 16:52
Интересующийся
Отправить личное сообщение для icom Посмотреть профиль Найти все сообщения от icom
 
Регистрация: 15.11.2014
Сообщений: 10

про видимость аякса я понял, мой код
if (typeof $(data) !== 'undefined') {
							if ($(data).hasClass('namesc_sub')) {
								SDD.checkSubs(parseInt(data.substr(11)));
							} else if ($(data).hasClass('namesc')) {
								SDD.checkSub(data);
							}
						}

как раз и вызывает функции с аяксом, функции рабочие там ничего нет такого, мне их и надо впихнуть в ваш пример, но не знаю как

пробую так
window.addEvent('domready', function(evt) {
        if (typeof(getCookie) == 'function') {
			var ids_array = getCookie('ids_array');
			
			if (ids_array) {
				var ids_obj = JSON.parse(ids_array);
				
				var toRequest = [];
				var getDataToRequest = function(data) {
					toRequest.push(data.name);
					if (data.content) {
						data.content.forEach(getDataToRequest);
					}
				};
				
				getDataToRequest(ids_obj);
				
				var request = function(arr) {
					var data = arr.shift();
					if (typeof $(data) !== 'undefined') {
						if ($(data).hasClass('namesc_sub')) {
							SDD.checkSubs(parseInt(data.substr(11)));
						} else if ($(data).hasClass('namesc')) {
							SDD.checkSub(data);
						}
					}
				};
				
				request(toRequest);
			}
		}
    });

но пишет TypeError: $(...) is null
jQuery не подойдет, так как до меня уже все написали на mootools
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу выпрыгнуть из ajax Rommik jQuery 10 14.08.2014 12:44
Ajax в цикле imediasun1 Элементы интерфейса 7 02.09.2013 19:25
как запустить в цикле последовательно две функции вызова ajax Bakhit jQuery 4 24.08.2013 12:13
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53