2017-10-03 2 views
0

Gibt es einen Unterschied zwischen den folgenden zwei Anrufe?Was ist der Unterschied zwischen diesen beiden AJAX-Anforderungssyntaxen?

$.ajax({ 
     type: 'POST', 
     url: someApiUrl, 
     contentType: 'application/json; charset=utf-8', 
     data: someData 
    }).success(function (payload, status, xhr) { 
     //success code 
    }); 

$.ajax({ 
     type: 'POST', 
     url: someApiUrl, 
     contentType: 'application/json; charset=utf-8', 
     data: someData, 
     success: function (payload, status, xhr) { 
      //success code 
     } 
    }); 

Wenn ja, was sind einige Vorteile/Nachteile zu jeder?

Bonuspunkte, wenn es eine bessere Möglichkeit gibt, diese Frage zu formulieren. Vielleicht haben die Techniken Namen?

+1

Das Endergebnis ist das gleiche. Welche Sie verwenden, ist eine Frage der Präferenz. Es gibt keinen technischen Vorteil für einen. – Igor

+0

Ich glaube, sie sind funktional gleich. –

+0

@JamesThorpe yeah, deshalb sah es für mich seltsam aus – j08691

Antwort

4

Wie geschrieben, sind sie identisch. Mit einer kleinen Änderung kann die erste der zweiten überlegen sein. Nämlich:

var $eventualResult = $.ajax({ 
    type: 'POST', 
    url: someApiUrl, 
    contentType: 'application/json; charset=utf-8', 
    data: someData 
}); 

Jetzt ist das Ergebnis ein Wert, können Sie es passieren um, kehren sie aus einer Funktion, verwenden Sie es in verschiedenen Kontexten:

$eventualResult.then(function (result) { /* uses the result */ }); 

// meanwhile, elsewhere in the codebase... 

$eventualResult.then(function (result) { /* do something else */ }); 

Mit dem Callback-Argument an die $.ajax Konstruktor hat diese Eigenschaft nicht.

+0

Interessant, danke. Irgendwelche Ideen zum Anpassen des Titels der Frage? Vielleicht "Erfolg Callback vs Parameter"? –

+0

@RatherNotsay der Rückruf * ist * ein Parameter. Was wir hier machen, ist Promises. Versprechen haben ihre eigenen Probleme, sind aber Callbacks überlegen. Google 'Versprechen vs. Rückrufe' für weitere Informationen. –

+0

so ist es Versprechen vs Callback? Vielen Dank. –

1

Die erste instanziiert den AJAX-Aufruf und fügt dann ein Erfolgsereignis, um es

Die zweite zeigt einen Erfolg Callback-Methode als Parameter an den Konstruktor des AJAX-Aufrufs

Die zweite überlegen ist (meiner Meinung nach) denn die Absicht ist klarer für den Entwickler beim Lesen

+0

Danke! Ich bevorzuge auch die Ästhetik der zweiten Option. –

Verwandte Themen