Показать сообщение отдельно
  #12 (permalink)  
Старый 28.04.2011, 20:44
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

надо было расписать так ( я про первые строчки,до $.post )

тогда и понять было бы легче


и почему-то у меня неуверенность насчет переменной func и самой рекурсии

// это массив [ название, этого, материала ]
var bquery = "Это название этого материала".match(/([а-яёa-z]){4,}/gi)


// номер слова в массиве
var n = 0;



// ищем "название"

$.post('/load/', {query: bquery[n], a: 2}, function(data){

                
       // ссылка на обработчик результата. т.е. на эту анонимную функцию
       var func = arguments.callee;
      
       if( !norez ){

      /*  что приходит при верном или неверном слове из архива?
           у меня будет слово Error */

                 if( data == 'Error' ) {
  
                              // проверка на наличие такого индекса в массиве
                              if( n < bquery.length ){
 
                         /*  через половину секунды отсылаем POST-запрос серверу со следующим словом
                                                      ++n <- это 1. тоесть слово ---> "этого"
                         важно отметить,что обработчик будет ТАКОЙ ЖЕ, т.е. опять вызовет POST-запрос, но уже с увеличенным "n" ( 3 , слово -> "материала")     */

                         setTimeout( function(){   $.post('/load/', {query: bquery[++n], a: 2}, func);  }, 500 );

                             // мы прошли все элементы массива, поиск неудачен
                              } else {   
                                          
                                      alert( 'НЕ НАЙДЕНО' );
   
                              }

                }

      }

});
Ответить с цитированием