как в jquery в ajax запросе отслеживать изменения длинны ответа.
success: function(data){
/*на стороне сервера крутится цикл и параметр data постоянно
увеличивается .
выглядит примерно так
|первая строка|
|вторая строка|
|третья строка|
Мне нужно отслеживать размер data и при его увеличении производить некие действия с последней строкой, например на экран её вывести.
*/
}
|
Так ты передавай серверу номер, с какой строки тебе нужен результат.
Если у него для тебя что-то новенькое есть - он передаст. Если нету - ответ будет, допустим, пустым. А постоянно гонять одни и те же данные между клиентом и сервером - ну тупо же )) |
что-то я не совсем понял. вот например у нас такая серверная сторона
while($users_send_list){
//например тут письмо отравляется
$send_OK = $mail->send($user_email);
if($send_OK !== false)
echo "Письмо пользователю ".$user_email." отправлено";
}
Вот, а аякс просто запускает скрипт рассылки писем. как передать то, что Вы предложили? Ну или создать масивчик перед циклом, и добавлять в него отосланные адреса, а после отправки выбирать последнюю запись при каждой итерации... |
А, то есть у тебя один запрос, а не несколько.
Во-первых, нужно делать flush() после echo. Без этого сервер будет удерживать все строки в буфере, и не отдаст пока не завершится цикл (не отработает скрипт). Ну а во вторых, success вызывается только по завершению запроса. Я даже не уверен что задуманное вообще реализуемо через XMLHttpRequest. Посмотри на событие "progress" (проще без jQuery, хотя нужно посмотреть доки по $.ajax). Его кстати нет в старых браузерах. Однозначно можно сделать на вебсокете, точно не знаю, но по-моему для этого надо ставить расширение для PHP на сервере. Ну и не кроссбраузерно оно. Если с progress не получится, то можно попробовать на айфрейме. |
| Часовой пояс GMT +3, время: 11:24. |