как в 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, время: 21:13. |