jQuery ajax()
函数是可用于 XMLHttpRequest(又名 AJAX)的最低抽象级别。所有其他 jQuery AJAX 函数(例如 load()
)都利用 ajax()
函数。使用 ajax()
函数为 XMLHttpRequests
提供了最强大的功能。 jQuery 还提供了其他更高级别的抽象来执行非常特定类型的 XMLHttpRequests
。这些函数本质上是 ajax()
Verknüpfungen für Methoden.
Diese Verknüpfungen sind:
加载()
<code>get()
<code>getJSON()
<code>getScript()
<code>post()
Es ist wichtig zu beachten, dass Abkürzungen zwar manchmal ganz nett sind, sie aber alle ajax()
。而且,当您需要 jQuery 在 AJAX 方面提供的所有功能和自定义功能时,您应该使用 ajax()
Methoden hinter den Kulissen nutzen.
Hinweis: Standardmäßig ajax()
和 load()
AJAX 函数均使用 GET
HTTP-Protokoll.
JSON mit Auffüllung (JSONP) ist eine Technologie, die es dem Absender einer HTTP-Anfrage (die JSON zurückgibt) ermöglicht, einen Namen für eine Funktion bereitzustellen, die mit einem JSON-Objekt als Funktionsparameter aufgerufen wird. Diese Technologie verwendet kein XHR. Es verwendet Skriptelemente, sodass Daten von jeder Site in jede Site gezogen werden können. Der Zweck besteht darin, die Same-Origin-Richtlinieneinschränkungen von XMLHttpRequest zu umgehen.
Mit <code>getJSON() jQuery-Funktionen können Sie JSON-Daten von einer anderen Domäne laden, wenn Sie der URL eine JSONP-Rückruffunktion hinzufügen. Als Beispiel sehen Sie hier, wie eine URL-Anfrage mit der Flickr-API aussieht.
<span class="sgc-100">http://api.flickr.com/services/feeds/photos_public.gne?tags=resig&tagmode=all&format=json&jsoncallback</span>
=?
Der
?
-Wert wird als Abkürzung verwendet, um jQuery anzuweisen, die als Argument an die ?
值用作快捷方式,告诉 jQuery 调用作为 <code>getJSON() 函数的参数传递的函数。如果您不想使用此快捷方式,可以将 ?
-Funktion übergebene Funktion aufzurufen. Wenn Sie diese Verknüpfung nicht verwenden möchten, können Sie ?
durch den Namen einer anderen Funktion ersetzen.
Unten verwende ich die Flickr-JSONP-API, um eine Webseite einzubinden, die die neuesten Fotos mit dem Tag „resig“ enthält. Beachten Sie, dass ich die Verknüpfung ?
verwende, sodass jQuery einfach die Rückruffunktion der von mir bereitgestellten ?
快捷方式,因此 jQuery 将简单地调用我提供的 <code>getJSON()-Funktion aufruft. Der an die Rückruffunktion übergebene Parameter sind die angeforderten JSON-Daten.
<!DOCTYPE html> <html lang="en"> <body> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function($){ $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=resig&tagmode=all&format=json&jsoncallback=?", // Using ? just means call the callback function provided function (data) { // Data is the JSON object from Flickr $.each(data.items, function (i, item) { $('<img />').attr("src", item.media.m).appendTo('body'); if (i == 30) return false; }); }); })(jQuery); </script> </body> </html>
Hinweis: Bitte überprüfen Sie unbedingt die API des von Ihnen verwendeten Dienstes, um Rückrufe korrekt zu verwenden. Flickr verwendet beispielsweise den Namen jsoncallback=?
,而 Yahoo!和 Digg 使用名称 callback=?
.
Beim Ausführen einer XHR-Anfrage speichert Internet Explorer die Antwort zwischen. Caching kann eine gute Sache sein, wenn die Antwort statischen Inhalt mit langer Haltbarkeit enthält. Wenn der Inhalt der Anfrage jedoch dynamisch ist und sich jederzeit ändern kann, müssen Sie sicherstellen, dass der Browser die Anfrage nicht zwischenspeichert. Eine mögliche Lösung besteht darin, einen eindeutigen Abfragezeichenfolgenwert an das Ende der URL anzuhängen. Dadurch wird sichergestellt, dass der Browser für jede Anfrage eine eindeutige URL anfordert.
// Add unique query string at end of the URL url: 'some?nocache='+(newDate()).getTime()
Eine andere Lösung (eher eine globale Lösung) besteht darin, alle AJAX-Anfragen standardmäßig so zu versehen, dass sie die gerade besprochene No-Cache-Logik enthalten. Verwenden Sie dazu die ajaxSetup
-Funktion, um das Caching global zu deaktivieren.
$.ajaxSetup({ cache: false // True by default. False means caching is off. });
Um diese globale Einstellung nun mit einer separaten XHR-Anfrage zu überschreiben, können Sie einfach dem Codebeispiel folgen, das die XHR-Anfrage mit der Funktion ajax()
函数时更改缓存选项即可。下面是使用 ajax()
durchführt, die die globale Einstellung überschreibt und die Anfrage zwischenspeichert.
$.ajaxSetup ({ cache: false // True by default. False means caching is off. }); jQuery.ajax({ cache: true, url: 'some', type: 'POST' } );
Das obige ist der detaillierte Inhalt vonVereinfachter jQuery-Leitfaden: Erkundung von jQuery und Ajax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!