- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Как можно сделать вывод хода выполнения операции.
Скажем есть php скрипт, который выполняет рассылку писем и есть страница, на которой мы выбираем список адресов. Т.е. выбираем адреса, жмем кнопку "отправить", на ajax выполняем отправку данных на обработку.
Но, результат вернется только после полной обработки (когда отправятся все письма), а мне надо так, чтобы после каждых 10-ти отправленных приходил ответ.
Как сделать такое.
P.S. Из знакомых мне вариантов: отправлять на обработку маленькими кусочками - скажем по 5 (метод не подходит), еще как вариант - очередь сообщений (тоже не подходит).
Другого способа как отправлять на обработку маленькими кусочками наверно нет.
Вешать js на таймер и периодически опрашивать сервер о ходе выполнения? По завершении задачи снимать с таймера обработчик.
На стороне сервера должна быть поддержка этого механизма.
Другого способа как отправлять на обработку маленькими кусочками наверно нет.
Думаю, что есть еще что то. Например, сохранение во временный файл результата выполнения, но у меня с таким вариантом проблемы: браузер не хочет отправлять новые Ajax запросы пока, не получит результат от прошлого ajax запроса (как убить запрос не дожидаясь ответа сервера?).
браузер не хочет отправлять новые Ajax запросы пока, не получит результат от прошлого ajax запроса (как убить запрос не дожидаясь ответа сервера?).
Должен отправлять .. ну, только если Вы не используете синхронный запрос.
как убить запрос не дожидаясь ответа сервера?
Таймаутом можно.
Должен отправлять .. ну, только если Вы не используете синхронный запрос.
Нет не использую.
Таймаутом можно.
Проверял еще вчера не помогло.
Тут суть такая. Первый запрос отправляет данные на обработку, а через две секунды создается еще один запрос, который уже смотрит ход выполнения (из временного файла). Запросы создается как бы оба, но пока первый не вернет результат, второй не отработает (не вернет свой результат).
Выводить ”хода выполнения операции” можно следующим образом: для странице используем (readyState == 3), а для PHP-скрипта — flush().
Страница:
PHP-скрипт (ajax.php):
ps. Не забудьте про кросс-браузерности XMLHttpRequest`а.
Выводить ”хода выполнения операции” можно следующим образом: для странице используем (readyState == 3), а для PHP-скрипта — flush().
Страница:
PHP-скрипт (ajax.php):
ps. Не забудьте про кросс-браузерности XMLHttpRequest`а.
Не выйдет.
Я как раз столкнулся с похожей ситуацией. Решил ее через временный файл в который складывал промежуточные результаты, а новыми запросами получал их.
P.S. Постараюсь на следующей неделе написать статью об этом.
Запросы создается как бы оба, но пока первый не вернет результат, второй не отработает (не вернет свой результат).
ajax_test.php:
когда не было аякса это делалось на перле... в частности идикаторы аплода (не давнлода а именно аплода) больших файлов и тд. Перл в отличии от пхп обрабатывает данные не целиком а по мере поступления и выдает поток результатов обработки обратно в браузер также по мере их готовности то есть частями... можно на старых форумах по перлу поискать... да, браузеры в потоковом режиме умеют работать, вовсе аякс для этого не нужен как ни странно... Конечно сейчас это такое решение странно звучит, но это есть на самом деле, и это илюстрация того как плодятся новые технологии которые решают давно уже решенные задачи, но рекламной шумихой завоевывают рынок...