Значение / Полезность / Цель нового способа jQuery.ajax, который возвращает объект jqXHR - PullRequest
1 голос
/ 01 марта 2011

Начиная с версии 1.5 / 1.51 jQuery, мы можем сделать ajax-запрос, подобный этому

var jqxhr = $.ajax({ url: "example.php" })
    .success(function() { alert("success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });

// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });

1> я все еще ищу пример / demos / некоторую информацию, чтобы узнать, какую значительную цель выполняет этот способ работы jQuery.ajax, чтобы предыдущий путь не служил

2> Насколько полезен этот объект jqXHR.

3> Я ищу какую-то практическую полезность

Ответы [ 3 ]

2 голосов
/ 01 марта 2011

Ну, сами JQuery скажем :

Функция $ .ajax () возвращает созданный ею объект XMLHttpRequest. Обычно jQuery обрабатывает создание этого объекта внутри, но пользовательскую функцию для ее создания можно указать с помощью опции xhr. Возвращенный объект, как правило, можно отбросить, но он предоставляет интерфейс более низкого уровня для наблюдения и манипулирования запросом. В частности, вызов .abort () для объекта остановит запрос до его завершения.

Так что, если по какой-то причине вам нужно создать свой собственный объект XMLHTTPRequest и отправить его в $ .ajax, это дает возможность вернуть этот объект после запроса.

1 голос
/ 02 марта 2011

Судя по всему, кажется, они улучшили обертывание объекта XMLHttpRequest, и как вы указали в своем вопросе, теперь вы можете на самом деле составлять методы для различных событий AJAX.

Кстати, если вы еще не заметили, вы можете видеть, что они не полностью изменили оболочку, поэтому будет существовать обратная совместимость со старым кодом $ .ajax.

Полагаю, все это улучшение заключается в предоставлении метода $ .ajax, системы dom, подобной системе, которую jQuery уже предлагает, только для событий.

Итак, суть в том, что здесь нет ничего особенного, кроме методов стека для событий ajax.

0 голосов
/ 03 марта 2011

Самым простым практическим примером для меня является то, что вы можете рассмотреть возможность использования иногда упрощенной формы $.ajax, такой как jQuery.getJSON , потому что теперь вы можете использовать обработчик error также с $.getJSON:

$.getJSON(
    'myServerUrl',
    {param1: "foo", param2: "bar"},
    function(data) {})
 .error(function() { alert("error"); });

Кроме того, вы запросили дополнительную информацию.Здесь две ссылки: Использование Deferreds в jQuery 1.5 и ОБЕЩАЕТ ОТ А К J , что объясняет основу новых изменений в $.ajax.

...