|
Ожидание выполнения цикла for
|
|
| Denisгггг | Отредактировал Denisгггг - Суббота, 31 Июля 2010, 03:27 Дата: 31 Июля 2010, 03:25 | Сообщение # 1 | ● ● ● ● ● 232 сообщения Статус: Offline | Можно ли сделать ожидание выполнения цикла, если да, подскажите пожалуйста как а то у меня гет запросом страницы и если там есть элемент то меняется переменная... а после цикла идет обработка этой переменной, а измениться она не успевает к моменту обработки  | | |
|
| kanat07 | Дата: 31 Июля 2010, 06:41 | Сообщение # 2 |  ● ● ● ● ● 735 сообщений Статус: Offline | | | |
|
| cucYa | Дата: 31 Июля 2010, 14:11 | Сообщение # 3 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | | | |
|
| Denisгггг | Отредактировал Denisгггг - Суббота, 31 Июля 2010, 16:03 Дата: 31 Июля 2010, 15:37 | Сообщение # 4 | ● ● ● ● ● 232 сообщения Статус: Offline | Code function achievment(AchID, AchName, Uname, imgurl, succtext, errtext) { var ifachiv = 'true'; (function (i) { var arg = arguments; $('#achievment00').load('/blog/'+i+'-0-'+AchID+' #ach', function() { if ($('#achievment00 a').length) {eba = $('#achievment00 a').eq(-2).text()-0+2} else {eba = 1} if ($('#'+AchName+'_'+Uname).length>0) {ifachiv = 'false';} if (i < eba) arg.callee(++i) }); })(1);
if (ifachiv == 'true') { $.get('/blog/0-0-0-0-1', function(data){ $.post('/blog/', { _wi: 1, a: 2, cat: AchID, coms_allowed: 1, jkd428: 1, jkd498: 1, ssid: $('input[name="ssid"]', data).val() }) }); soundManager.createSound('Achievment','/Achievement.mp3'); soundManager.play('Achievment'); _uWnd.alert('<img src="'+imgurl+'"><br>'+succtext, 'Поздравляем!', {close: 1,w: 230,h: 200,tm: 4000,align: 'center'}); } else { _uWnd.alert(errtext, 'Извините :(', {close: 1,w: 230,h: 90,tm: 4000,align: 'center'}); } } Сделал так, всё равно переменная не успевает измениться В общем суть в том, чтобы дождаться выполнения Code (function (i) { var arg = arguments; $('#achievment00').load('/blog/'+i+'-0-'+AchID+' #ach', function() { if ($('#achievment00 a').length) {eba = $('#achievment00 a').eq(-2).text()-0+2} else {eba = 1} if ($('#'+AchName+'_'+Uname).length>0) {ifachiv = 'false';} if (i < eba) arg.callee(++i) }); })(1); а потом уже идти дальше... setTimeout тут наврено не подойдет, т.к. количество страниц заранее неизвестно да и неизвестно сколько они там гетиться будут  | | |
|
| cucYa | Дата: 31 Июля 2010, 16:16 | Сообщение # 5 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | На мой пример внимательно смотрим. | | |
|
| Denisгггг | Отредактировал Denisгггг - Суббота, 31 Июля 2010, 16:51 Дата: 31 Июля 2010, 16:20 | Сообщение # 6 | ● ● ● ● ● 232 сообщения Статус: Offline | Ну у тебя там гетится много раз и постится много раз, а мне пост один только нужен :)... в общем сделал чутка по другому, вроди робит Code function achievment(AchID, AchName, Uname, imgurl, succtext, errtext) { var ifachiv = 'true';eba = 1; (function (i) { var arg = arguments;
$('#achievment00').load('/blog/'+i+'-0-'+AchID+' #ach', function() { if ($('#achievment00 a').length>0 && i==1) {eba = $('#achievment00 a').length} if ($('#achievment00 a').eq(-2).text()-0>6 && i==1) {eba = $('#achievment00 a').eq(-2).text()-0} if ($('#'+AchName+'_'+Uname).length>0) {ifachiv = 'false';} if (i == eba) {achtr();} if (i < eba) arg.callee(++i) }); })(1);
function achtr() { if (ifachiv == 'true') { $.get('/blog/0-0-0-0-1', function(data){ $.post('/blog/', { _wi: 1, a: 2, cat: AchID, coms_allowed: 1, jkd428: 1, jkd498: 1, ssid: $('input[name="ssid"]', data).val() }) }); soundManager.createSound('Achievment','/Achievement.mp3'); soundManager.play('Achievment'); _uWnd.alert('<img src="'+imgurl+'"><br>'+succtext, 'Поздравляем!', {close: 1,w: 230,h: 200,tm: 4000,align: 'center'}); } else { _uWnd.alert(errtext, 'Извините :(', {close: 1,w: 230,h: 90,tm: 4000,align: 'center'}); } }
} | | |
|
| cucYa | Дата: 31 Июля 2010, 16:37 | Сообщение # 7 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | Зачем цикл, если данные отправляются лишь один раз? | | |
|
| Denisгггг | Отредактировал Denisгггг - Суббота, 31 Июля 2010, 16:54 Дата: 31 Июля 2010, 16:49 | Сообщение # 8 | ● ● ● ● ● 232 сообщения Статус: Offline | В цикле Code (function (i) { var arg = arguments; $('#achievment00').load('/blog/'+i+'-0-'+AchID+' #ach', function() { if ($('#achievment00 a').length) {eba = $('#achievment00 a').eq(-1).text()-0} else {eba = 1} if ($('#'+AchName+'_'+Uname).length>0) {ifachiv = 'false';} if (i == eba) {achtr();} if (i < eba) arg.callee(++i) }); })(1); Там идет перебор по страницам с поиском (Просто вместо гет использую лоад ) Code $('#'+AchName+'_'+Uname) и если хотя бы на одной странице есть то сделать а если нет то оставить ее true, а дальше уже идет в зависимости от значения ifachiv... количество страниц пытаюсь выдёргивать из page selector'a | | |
|