Может кто-нибудь объяснить, что делает этот код ajax? - PullRequest
0 голосов
/ 25 мая 2011

Может кто-нибудь объяснить, что делает этот код ajax?

function ajaxProgress(){
 //Math.random() is for bitchy ie to prevent caching the xml.
 $.get('sample.ff?do=progressInfo&type=sampletype&dummy='+Math.random(), { dataType:   'xml'},      function(xml) {
 //if the import is running get infos about the progress...
 if($('/importProgress/running', xml).text() == 'true') {
 //..there are no infos yet, so it was just started..
 if($('/importProgress/progress', xml) == null || $('/importProgress/progress', xml).text() == ''){
 //do something
 }
 ..........
 setTimeout( "ajaxProgress()", 1000);

1 Ответ

2 голосов
/ 25 мая 2011

Эта функция вызывает себя рекурсивно каждую секунду.Он отправляет запрос AJAX GET на Import.ff и передает 3 параметра строки запроса: do=progressInfo, type=sampletype и случайное число.Это случайное число добавляется в URL, потому что запросы GET кэшируются браузерами, и тем самым он гарантирует, что он получает свежий контент с сервера при каждом запросе.

Сервер сам отправляет файл XML в качестве ответа.Этот XML-файл содержит несколько узлов, таких как:

<importProgress>
    <running>true</running>
    <progress>20</progress>
</importProgress>

Таким образом, скрипт анализирует этот XML в обратном вызове AJAX-запроса.Он пытается получить значения узлов running и progress.Если running=true, то он проверяет, есть ли узел прогресса, и выполняет с ним некоторую обработку.Наконец он вызывает себя через 1 секунду, используя функцию setTimeout.И т. Д.

Таким образом, в основном этот сценарий сообщает о ходе выполнения какой-либо серверной операции, опрашивая сервер с интервалом в 1 секунду, используя запросы AJAX GET, и анализируя ответ.

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