Обновите интерфейс через AJAX из запроса PHP - PullRequest
1 голос
/ 28 декабря 2011

Я делаю сценарий, который рассылает информационные бюллетени.Процесс отправки почты состоит в том, что пользователи нажимают «отправить», и это отправляет запрос AJAX на sendMail.php.SendMail.php просто принимает сообщение и отправляет его всем пользователям в базе данных.

Когда пользователь нажимает кнопку «Отправить», также появляется диалоговое окно, и я хочу добиться того, чтобы сервер в реальном времени отправлял свой текущий прогресс клиенту, чтобы я мог обновить индикатор выполнения и сообщить клиентуточно, когда вся почта была отправлена.

Я не совсем уверен, что мне нужно искать или как это сделать.Я использую jQuery, если это хоть какая-то помощь1007 *

Приветствия:)

РЕДАКТИРОВАТЬ: Кажется, есть некоторая путаница, я не хочу делать простой запрос AJAX, я могу сделать это хорошоЯ борюсь с тем, чтобы постепенно отправлять данные обратно клиенту с сервера.

Ответы [ 3 ]

1 голос
/ 28 декабря 2011

Мой способ заключается в назначении UUID для запроса.Сервер должен обновить ход выполнения сеанса, используя UUID в качестве ключа.Затем Javascript может многократно запрашивать сервер о прогрессе, используя интерфейс jjery ajax.

Так что в целом скрипт будет выглядеть примерно так (псевдокод)

<script>

function pollServer(uuid)
{
   $.ajax({
         url:'/pollProgress',
         // the response is the progress
         success:function(result){ 
                if (progress == 100) { ... /* finish */ } 
                else
                {
                     ... // update the progress somewhere.. for example $("#progress").text(result)
                     setTimeout(function(){pollServer(uuid)},100);
                }
        }
}
// first request to server will be the "send" request
$.ajax({
   url:'/sendMail',
   //  the server should send the UUID as the result
   success:function(result){ pollServer(result)}
})
</script>
0 голосов
/ 28 декабря 2011

Вот обзор: http://ajaxpatterns.org/Progress_Indicator

Вот несколько подробных кодов AJAX: http://www.redips.net/javascript/ajax-progress-bar/

Вот хороший способ отобразить индикатор выполнения: http://docs.jquery.com/UI/Progressbar

0 голосов
/ 28 декабря 2011

Ознакомьтесь с функциональностью $.post() jQuery здесь: http://api.jquery.com/jQuery.post/. Это позволяет отправлять запрос сценарию на стороне сервера и получать результат в реальном времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...