Многие вэб-программисты часто сталкиваются с проблемой AJAX-запроса: стандарт технологии XMLHttpRequest говорит о том, что при создании такового управление скриптом передается обратно браузеру и для работы с ответом на запрос нужно обращаться к внешней функции.
Это очень логично, если ссылаться на неизвестное время ожидания ответа сервера.
Этот момент не всегда удобен, так как нужно писать дополнительные функции, создавать переходы и т.д., в то время, как с сервера нужна получить всего лишь одну строку, или число.
В наше время все чаще возникают ситуации, когда функция зависит именно от этого ответа.
Вопрос. Собираются ли ребята из W3C переписывать стандарт и дать запрашивающей функции возможность дожидаться ответа?
Примечание:
Xobrt - стоит ознакомиться со стандартом. Мало того, что код функции не дожидается возврата ответа и исполняется дальше, но и при ответе возвращается значение undefined вызывающему средству и ответ передается только функции-руководителю (handler), которую надо передать как аттрибут запроса, или создать такую по умолчанию.
Примечание:
hedint - асинхронность, несомненно, плюс, когда она нужна.
Так я совершаю запрос на данный момент:
function a( txt ){
if( !txt ) return Ajax.request( data , url , async , a );
return txt;
}
Если мне нужно следующее:
function a( foo , bar ){
var txt = Ajax.request( data , url , async );
return foo + txt + bar;
}
Это невозможно решить так, как указано. Нужно писать метод, который обработает ответ AJAX-а.
Синхронность, или асинхроннсть здесь роли не играют.
Примечание:
Спасибо всем за такое количество внимания. Вопрос даже не в том, может ли браузер дождаться ответа, или побежит дальше, а в том, что для обработки этого ответа нужна внешняя функция. Мое второе примечание поясняет желательный принцип работы. Я говорю о системе, в которой даже в установленном в "истина" флагом асинхронности ответа дожидается и прекращает свое исполнение только вызывающая функция. Вопрос состоял в том, знает ли кто-нибудь, будет ли это частью новых стандартов W3C. Спасибо за ответы =)
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.