2009-08-27 17 views
36

Nehmen wir an, ich möchte ein PHP-Skript ausführen. Welcher Weg ist besser?jQuery ajax() vs get()/post()

Dies:

$.ajax({ 
    type: "GET", 
    url: "php-script.php", 
    dataType: "script" 
}); 

Oder diese:

$.get("php-script.php", function(data) { }); 
+0

Was sind die Auswirkungen des Skripts? –

Antwort

29

In diesem Fall würde ich sagen $.get, wie es sofort klar ist, was die Art der Anfrage ist. Auf jeden Fall ist es nur eine Abkürzung für den größeren und optionaleren Ajax-Aufruf, und die Konvertierung zwischen den beiden ist im schlechtesten Fall trivial.

Wenn Sie denken, dass Sie ausgefallene $.ajax Optionen benötigen, verwenden Sie $.ajax. Wenn Sie nicht die Bequemlichkeit Methoden verwenden jQuery bietet, wie .load, $.get usw.

22

$.get() ist nur eine Abkürzung für einen $.ajax() Anruf vom Typ "GET".

Zur Ausarbeitung $.get() ruft nur $.ajax() im Hintergrund. Es ist eine Abkürzung Art von was $(function(){}) zu $(document).ready(function(){}) ist. Gemeinsame Anwendungsfälle für $.get ist für eine schnelle und einfache erhalten, $.ajax sollte verwendet werden, wenn Sie etwas komplexer machen müssen oder wenn Sie die zusätzliche Flexibilität benötigen.

+0

$ .get umschließt $ .ajax mit type = "GET". Es ist mehr als nur eine Verknüpfung, der Hauptunterschied besteht darin, dass Sie mit $ .get keine POST-Anfrage an den Server stellen können. – karim79

+3

uhh ich hätte das offensichtlich gedacht ... ich habe es aktualisiert, da du denkst es nicht. –

+0

@Darko Z - nein, es schien nicht offensichtlich aus Ihrer Antwort, deshalb habe ich kommentiert - um darauf hinzuweisen. Ihr Update macht es jedoch offensichtlich. – karim79

1

$.get()/$.post() nicht unterstützen beforeSend wie $.ajax() tut. So können Sie beispielsweise beim Laden nicht direkt einen Spinner anzeigen. Aber Sie können dies mit .ajaxStart() tun.