У меня есть страница, которая выполняет четыре асинхронных вызова ajax для четырех веб-сервисов (на сервере IIS) один за другим следующим образом:
executeAjax('/get_parent_List.asmx',blah, blah, blah, successCallBack,errorCallBack);
executeAjax('/get_file_list.asmx',blah, blah, blah, successCallBack2,errorCallBack2);
executeAjax('/get_assigned_to_list.asmx',blah, blah, blah, successCallBack3,errorCallBack3);
executeAjax('/get_comments_list.asmx',blah, blah, blah, successCallBack4,errorCallBack4);
Ниже приведен журнал со страницы сценария Java. Он включает отметку времени перед отправкой запроса и отметку времени после получения ответа на каждый запрос.
before GET_PARENT_LIST:::::::::::::: 17/05/2018 11:15:39.218
before GET_FILE_LIST:::::::::::::: 17/05/2018 11:15:39.220
before GET_ASSIGNED_TO_LIST:::::::::::::: 17/05/2018 11:15:39.222
before GET_COMMENTS_LIST:::::::::::::: 17/05/2018 11:15:39.224
response of GET_PARENT_LIST:::::::::::::: 17/05/2018 11:15:39.570
response of GET_FILE_LIST:::::::::::::: 17/05/2018 11:15:39.799
response of GET_COMMENTS_LIST:::::::::::::: 17/05/2018 11:15:40.340
response of GET_ASSIGNED_TO_LIST:::::::::::::: 17/05/2018 11:15:40.797
Ниже приведен журнал от веб-сервисов:
start of GET_PARENT_LIST:::::::::: 17/05/2018 11:15:39.223
end of GET_PARENT_LIST:::::::::: 17/05/2018 11:15:39.564
start of GET_FILE_LIST:::::::::: 17/05/2018 11:15:39.733
end of GET_FILE_LIST:::::::::: 17/05/2018 11:15:39.791
start of GET_COMMENTS_LIST:::::::::: 17/05/2018 11:15:40.244
end of GET_COMMENTS_LIST:::::::::: 17/05/2018 11:15:40.336
start of GET_ASSIGNED_TO_LIST:::::::::: 17/05/2018 11:15:40.743
end of GET_ASSIGNED_TO_LIST:::::::::: 17/05/2018 11:15:40.793
Таким образом, у меня есть несколько запросов здесь:
Обработка веб-службы для GET_PARENT_LIST была завершена 39.564 . Обработка следующего веб-сервиса (GET_FILE_LIST) началась в 39,733 . Почему требуется (733 - 564) 169 миллисекунд, чтобы начать обработку GET_FILE_LIST после того, как GET_PARENT_LIST завершил его выполнение, даже когда все четыре вызова ajax уже были запущены к моменту, когда первый GET_PARENT_LIST был завершен после его выполнения?
Можно заметить, что веб-сервисы выполняются таким образом, что выполнение следующего веб-сервиса начинается только после того, как его предыдущий веб-сервис завершил выполнение. Можно ли запустить веб-службы таким образом, чтобы они запускали выполнение, как только они получают запрос от вызовов ajax?
- Как видно из журналов javascript и веб-службы, вызов AJAX для GET_FILE_LIST был запущен 39.220 , но его выполнение в веб-службе началось только 39.791 . почти через 571 миллисекунд. Я хочу, чтобы выполнение веб-службы GET_FILE_LIST началось сразу после запуска запроса AJAX.
PS: я запускаю страницу и сервер на одном и том же порту локально. Таким образом, запрос не является кросс-браузерным и выполняется на локальном хосте.