Метод Open из XMLHttpRequest - PullRequest
3 голосов
/ 27 мая 2010

В чем разница между синхронизацией и асинхронностью в методе open (method, url, async) в AJAX.

Ответы [ 5 ]

4 голосов
/ 27 мая 2010

Разница в том, что Sync не существует. Игнорируй это. Пять лет назад я написал целую библиотеку синхронных виджетов, и стал лучше, когда переписал ее :-) Я упоминаю jQuery в этом предложении, но я предпочитаю YUI. Что бы вы ни делали, смотрите видео на Yahoo Theatre : базовый и продвинутый Javascript, проблемы с Dom, все. Они качаются.

4 голосов
/ 27 мая 2010

Если вы передадите true для асинхронного параметра, вызов сразу же вернется и будет выполнена следующая строка JavaScript (до возврата HTTP-запроса).

Если вы передадите false, он будет блокироваться до тех пор, пока не вернется HTTP-вызов.

1 голос
/ 27 мая 2010
  • При вызове open() с async=false запрос будет выполнен до возврата вызова на send().
  • При вызове open() с async=true вызов на send() немедленно вернется.

Установка async в false дает более предсказуемые результаты, так как никакой другой код javascript не будет выполняться во время запроса, но он имеет существенный недостаток, заключающийся в том, что страница не отвечает до тех пор, пока запрос не будет завершен.

1 голос
/ 27 мая 2010

Синхронизация синхронная, блокировка a.k.a. Асинхронный асинхронный, например, неблокирующий.

0 голосов
/ 27 мая 2010

синхронизация означает, что ваш JavaScript будет заблокирован, пока вы не получите ответ от сервера

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

Вы никогда не должны использовать синхронизацию - плохой пользовательский интерфейс для человека

Добавлено: и вам, скорее всего, не следует напрямую использовать XMLHttpRequest - между браузерами есть тонкие различия. Гораздо лучше использовать такие библиотеки, как JQuery, yui, mootools и т. Д.

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