Вопрос об асинхронном JavaScript - уволить - PullRequest
0 голосов
/ 13 октября 2009

Я пытаюсь улучшить производительность веб-метода в одном из наших приложений.

Мне удалось запустить веб-метод на одном сервере, поэтому я решил попробовать разделить процесс так, чтобы он выполнялся на нескольких серверах.

В данный момент выполняется запрос xmlhttp для передачи массива (quepasatio) со всеми объектами, которые должны быть обработаны веб-методом, см. Код ниже:

xmlHttp.send ("object =" + quepasatio + "& Type =" + Type + "& ToId =" + Guid + "& ToName =" + Name);

Что я сделал, так это разделил массив quepasatio на два и обернул xmlhttp в цикл for, но, похоже, это не ускорило процесс.

Я пытаюсь отправить запросы xmlhttp без ожидания ответа, чтобы второй, третий, ... nths-запрос отправлялся сразу после первого.

Есть идеи?

ТИА

Ответы [ 3 ]

2 голосов
/ 13 октября 2009

Измените ваш открытый метод на:

xmlHttp.open("GET", url, true);

Это заставит вас отправлять вызовы в асинхронный режим больше информации здесь

1 голос
/ 13 октября 2009

Вы, вероятно, отправляете все это за один раз, и сервер его разбивает. Многие браузеры имеют ограничения на соединение, которые ограничивают количество запросов, которые они могут иметь на сервере, возможно, вы столкнулись с этим.

Отправка всего прокси-сервера, который затем разделяет его, означает одно соединение, которое можно отключить сразу после отправки. Но тогда вам также понадобится некоторый механизм опроса, чтобы вернуть частичные результаты (если это то, что вам нужно), так что это также усложнит проблему.

0 голосов
/ 13 октября 2009

Причина, по которой это не ускоряет процесс, заключается в том, что запросы помещаются в очередь на сервере. Сервер будет обрабатывать только один запрос от каждого пользователя.

Если вы хотите, чтобы вызовы запускались в параллельном режиме, вы должны сделать веб-сервис безсессионным, чтобы он не ставил запросы в очередь.

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