JQUERY + SPLIT ARRAY + FOR + POST

Sankaboy

Постоялец
Регистрация
1 Фев 2012
Сообщения
112
Реакции
3
Есть textarea с таким содержанием, к примеру:
"hts://ww.nulled/forums/373/,hts://ww.nulled/forums/3733/,hts://ww.nulled/forums/37332/,hts://ww.nulled/forums/37366/"
(ссылки через запятую)

Содержание может достигать до 20 000 ссылок. Каждую ссылку нужно по отдельности отправить на сервер. На котором будет ссылка обрабатываться средствами php. По запросу к серверу возвращается ответ.

Как мне это организоваться средствами JQUERY? У меня возникла проблема именно с перебором ссылок. Циклы обычной структуры тут не катят, а на сложные структуры мозгов нету.

Что получилось у меня:

function poster(link){
var posting = $.post( "build.php", { text: link });
posting.always(function() { $("#procces").show(); });
posting.done(function( data ) {
$( "#result" ).append( data );
$("#procces").hide();
});
}

$( "#btnstart" ).click(function() {
var term = $("#url" ).val(); // это поле textarea с ссылками
var myArray = term.split(',');
for (var i = 0; i < myArray.length; i++) {
poster(myArray);
}
});

Помогите реорганизовать текст скрипта.
С уважением.

Почему решил кучу ссылок обрабатывать средствами JQUERY + php? Потому что, одного php не достаточно. Время обработки php сценариев ограниченно по времени и все ссылки не успеют обработаться, если операции обработки сложные. А подвязка JQUERY поочередно позволит обработать все ссылки. ИМХО. Может есть другие решения?
 
обрабатывать такие массивы только на сервере средствами php.
можно установить предельное время выполнения и проверять его в цикле обработки - по достижению предела (брать с запасом на сохранение) текущие значения складывать в файл текстовый, сохраняя сведения для нового скрипта в сесии и перезапускать скрипт подхватывая данные из сессии и файла с необходимой строки.
есть еще способы с вебсокетами, но это уже нужно дополнительно изучать
Для просмотра ссылки Войди или Зарегистрируйся
 
$( "#btnstart" ).click(function() {
var term = $("#url" ).val(); // это поле textarea с ссылками
var myArray = term.split(',');
for (var i = 0; i < myArray.length; i++) {
poster(myArray);
}
});
В этом коде вы отправляете ваш массив myArray.length раз. Каждый элемент по отдельности:
HTML:
for (var i = 0; i < myArray.length; i++) {
poster(myArray[i]);
}
 
В этом коде вы отправляете ваш массив myArray.length раз. Каждый элемент по отдельности:
HTML:
for (var i = 0; i < myArray.length; i++) {
poster(myArray[i]);
}
Ошибка есть, забыл дописать, когда текст скрипта переносил. Но задача не решается.
 
Содержание может достигать до 20 000 ссылок. Каждую ссылку нужно по отдельности отправить на сервер. На котором будет ссылка обрабатываться средствами php. По запросу к серверу возвращается ответ.

Очень плохая архитектура - ты сам ддосищь свой сервер. Хотя с учётом того, что есть сложность в том чтобы нагуглить простейшие операции, не так уж и плохо...
HTML:
$('#ctrl_message').val().split(',').forEach(function(item, i, arr) {
  console.log(item); //тут ajax
});

В идеале:
всё отправить на сервер;
всё записать куда-то;
проверять сколько успеешь до смерти php, сохраняя текущий элемент и результат обработки куда-то;
ajax`ом заращиваешь у скрипта статус обработки и перезапускаешь сдохший скрипт.
Но не смотря на кажущуюся простоту у начинающих может уйти довольно много времени на реализацию.
 
Откуда, если не секрет, в textarea 20 тыс. ссылок берется? А по поводу отправки и последующей обработки, можно массив порциями на сервер отправлять (т.е. разбить большой массив на несколько массивов поменьше) , так чтобы время обработки одной порции не превышало время выполнения скрипта.
 
Откуда, если не секрет, в textarea 20 тыс. ссылок берется? А по поводу отправки и последующей обработки, можно массив порциями на сервер отправлять (т.е. разбить большой массив на несколько массивов поменьше) , так чтобы время обработки одной порции не превышало время выполнения скрипта.

Ссылки я сам вставляю. Они сохранены в тхт документе.
Я вижу для себя проблему в отправке ссылок по очереди.

Никак не получается обработать ссылки. Мозгов не хватает и примеров не нахожу.
 
Я вижу для себя проблему в отправке ссылок по очереди.
Так привели же пример...
Можно еще последовательно, например, по success отправлять.
HTML:
$(document).ready(function(e) {  
   $('#btnstart').on('click', function(e) {
      e.preventDefault();
      var myArr = $('#url').val().split(',');  
     (function poster(a){
       if(a){
        $.ajax({
            url: 'build.php',
            type: 'POST',    
            data: 'text: '+myArr[--a],    
            success: function(data){                        
                $("#result").append(data);
                 poster(a);
            }          
        });
      }
     })(myArr.length);
   });  
});
 
Можно еще последовательно, например, по success отправлять.
в любом случае нужно выяснить время работы скрипта на сервере

Ссылки я сам вставляю. Они сохранены в тхт документе.

и все же проще этот файл подсовывать скрипту на сервере, где по истечении времени выполнения сохранять в сессию номер строки обработанной, а результаты в другой файл и запускать скрипт заново с строки которая в сесии хранится
 
Последнее редактирование:
Спасибо большое за помощь. Всем +1.
Обработал линки чисто на пхп.
 
Назад
Сверху