Использовать ли новый параметр URL в JQuery 1,5 AJAX - PullRequest
0 голосов
/ 22 мая 2019

От http://api.jquery.com/jQuery.ajax/#jQuery-ajax-url-settings я замечаю, что jquery v1.5 и далее позволяет нам использовать

jQuery.ajax( url [, settings ] )

или просто

jQuery.ajax( [ settings ] )

и указывать URL вsettings.url.Есть ли какое-либо преимущество (или недостаток) в указании URL-адреса как отдельного параметра, а не как свойства объекта settings?

1 Ответ

0 голосов
/ 22 мая 2019

Модуль ajax был переписан для 1.5: https://blog.jquery.com/2011/01/31/jquery-15-released/

В начале метода jquery $.ajax находится эта проверка:

    // If url is an object, simulate pre-1.5 signature
    if ( typeof url === "object" ) {
        options = url;
        url = undefined;
    }

, поэтому функциональной разницы нетбудет обрабатывать любой метод (предполагая, что url в (url,settings) является строкой).

Далее, он делает:

s.url = url || s.url;

, поэтому URL за пределами настроек перезаписывает тот, что внутри, если оба предоставлены.

Это позволяет вам создать общее,повторно используемый объект настроек ajax для использования с разными URL-адресами.

Ключ здесь еще ниже:

s = jQuery.ajaxSetup( {}, options )

это применяет любые предыдущие вызовы к $.ajaxSetup для параметров, то есть вы можете настроитьвсе ваши настройки ajax в $.ajaxSetup, а затем их не нужно передавать в $.ajax, который может быть простым URL-адресом, например:

$.ajaxSetup({
    data: { html: "<b>ok</b>" }, 
    method: "POST"
});

// now call $.ajax with just the url
$.ajax("/echo/html")
    .done(function(h) { $("#o3").html(h) });

Без отдельного строкового параметра url, это потребуетбыть

$.ajax({ url: "..." })

Это продемонстрировано в этой скрипке (которая использует скрипту /echo/html для вызовов ajax)

https://jsfiddle.net/2mnr8ok5/


IsЕсть ли какое-либо преимущество (или недостаток) в указании URL-адреса как отдельного параметра, а не как свойства объекта настроек?

Если вы передаете объект настроек и у него есть URL-адрес, то естьНет смысла звонить

$.ajax(settings.url, settings);

, если выиспользуя $.ajaxSetup и просто изменив URL-адрес, затем передача в виде строки будет удобнее, чем создание объекта только с URL-адресом внутри.

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