Heim  >  Artikel  >  Web-Frontend  >  Umfassende Analyse der Parameter der $.Ajax()-Methode (grafisches Tutorial)

Umfassende Analyse der Parameter der $.Ajax()-Methode (grafisches Tutorial)

亚连
亚连Original
2018-05-23 16:56:461871Durchsuche

AJAX ist eine Technologie zum Erstellen schneller dynamischer Webseiten. In diesem Artikel werden hauptsächlich relevante Informationen zur umfassenden Analyse der Parameter der $.Ajax()-Methode vorgestellt (empfohlen). >

Lassen Sie mich zunächst das Konzept von Ajax vorstellen

AJAX steht für „Asynchronous Javascript And XML“ (asynchrones JavaScript und XML) und bezieht sich auf eine Webseite, die erstellt wird interaktive Webanwendungen Technologie entwickeln.

AJAX = Asynchrones JavaScript und XML (eine Teilmenge der Standard Universal Markup Language).

AJAX ist eine Technologie zur Erstellung schneller, dynamischer Webseiten.

AJAX ermöglicht die asynchrone Aktualisierung von Webseiten durch den Austausch einer kleinen Datenmenge mit dem Server im Hintergrund. Das bedeutet, dass Teile einer Webseite aktualisiert werden können, ohne dass die gesamte Seite neu geladen werden muss.

Herkömmliche Webseiten (die kein AJAX verwenden) müssen die gesamte Webseite neu laden, wenn der Inhalt aktualisiert werden muss.

Ajax-Methode

Die $.ajax()-Methode ist die Ajax-Implementierung von jQuery auf der niedrigsten Ebene. Seine Struktur ist:

 $.ajax(options)

Diese Methode hat nur einen Parameter, aber dieses Objekt enthält die für die $.ajax()-Methode erforderlichen Anforderungseinstellungen und Rückruffunktionen und Parameter liegen in Form von Schlüssel/Wert vor und alle Parameter sind optional. Häufig verwendete Parameter sind in der folgenden Tabelle aufgeführt:

1.url

erfordert einen Parameter vom Typ String (Standard ist die aktuelle Adresse). ), um die angeforderte Seite zu versenden.

2.type

erfordert Parameter vom Typ String und die Anforderungsmethode (post oder get) ist standardmäßig get. Beachten Sie, dass auch andere HTTP-Anfragemethoden wie Put und Delete verwendet werden können, diese jedoch nur von einigen Browsern unterstützt werden.

3.timeout

erfordert einen Parameter vom Typ Zahl und legt das Anforderungszeitlimit (Millisekunden) fest. Diese Einstellung überschreibt die globale Einstellung der Methode $.ajaxSetup().

4.async

erfordert boolesche Typparameter, die standardmäßig auf true gesetzt sind. Alle Anfragen sind asynchrone Anfragen. Wenn synchrone Anforderungen erforderlich sind, legen Sie diese Option auf „false“ fest. Beachten Sie, dass eine synchrone Anfrage den Browser sperrt und der Benutzer warten muss, bis die Anfrage abgeschlossen ist, bevor andere Vorgänge ausgeführt werden können.

5.cache

erfordert einen booleschen Typparameter, der Standardwert ist true (wenn der Datentyp Script ist, ist der Standardwert false). Wenn Sie „false“ festlegen, werden die Anforderungsinformationen nicht aus dem Browser-Cache geladen.

6.data

erfordert Parameter vom Typ Objekt oder Zeichenfolge, Daten werden an den Server gesendet. Wenn es sich nicht um eine Zeichenfolge handelt, wird sie automatisch in das Zeichenfolgenformat konvertiert. Die Get-Anfrage wird an die URL angehängt. Um diese automatische Konvertierung zu verhindern, können Sie die Option „processData“ anzeigen. Das Objekt muss im Schlüssel/Wert-Format vorliegen, zum Beispiel wird {foo1:"bar1",foo2:"bar2"} in &foo1=bar1&foo2=bar2 konvertiert. Wenn es sich um ein Array handelt, weist JQuery verschiedenen Werten automatisch denselben Namen zu. Beispielsweise wird {foo:["bar1","bar2"]} in &foo=bar1&foo=bar2 konvertiert.

7.dataType

erfordert einen Parameter vom Typ String, dem Datentyp, der voraussichtlich vom Server zurückgegeben wird. Wenn nicht angegeben, gibt jQuery automatisch ResponseXML oder ResponseText basierend auf den Mine-Informationen des HTTP-Pakets zurück und übergibt sie als Rückruffunktionsparameter. Die verfügbaren Typen sind wie folgt:

XML: Gibt ein XML-Dokument zurück, das mit jQuery verarbeitet werden kann.

HTML: Gibt reine Text-HTML-Informationen zurück; das enthaltene Skript-Tag wird ausgeführt, wenn es in das DOM eingefügt wird.

Skript: Gibt Klartext-Javascript-Code zurück. Ergebnisse werden nicht automatisch zwischengespeichert, es sei denn, der Cache-Parameter ist festgelegt. Beachten Sie, dass bei Remote-Anfragen (nicht unter derselben Domain) alle Post-Anfragen in Get-Anfragen umgewandelt werden.

json: Gibt JSON-Daten zurück.

jsonp: JSON-Format. Wenn Sie eine Funktion im JSONP-Format aufrufen, z. B. myurl?callback=?, ersetzt JQuery automatisch das letzte „?“ durch den richtigen Funktionsnamen, um die Rückruffunktion auszuführen.

Text: Gibt eine einfache Textzeichenfolge zurück.

8.beforeSend

erfordert Parameter vom Typ Funktion. Sie können die Funktion des XMLHttpRequest-Objekts vor dem Senden der Anfrage ändern, z. B. durch Hinzufügen ein benutzerdefinierter HTTP-Header. Wenn in beforeSend false zurückgegeben wird, kann diese Ajax-Anfrage abgebrochen werden. Das XMLHttpRequest-Objekt ist der einzige Parameter.

function(XMLHttpRequest){
    this;//调用本次ajax请求时传递的options参数
  }

9.complete

erfordert Parameter vom Funktionstyp, nachdem die Anfrage erfolgt ist abgeschlossen Die aufgerufene Rückruffunktion (wird aufgerufen, wenn die Anfrage erfolgreich ist oder fehlschlägt). Parameter: XMLHttpRequest-Objekt und eine Zeichenfolge, die den erfolgreichen Anforderungstyp beschreibt.

  function(XMLHttpRequest,textStatus){
    this; //调用本次ajax请求时传递的options参数
  }

10.success

erfordert Parameter vom Funktionstyp, nachdem die Anfrage erfolgt erfolgreich Die aufgerufene Callback-Funktion hat zwei Parameter.

(1) Vom Server zurückgegebene und gemäß dem dataType-Parameter verarbeitete Daten.

(2) Eine Zeichenfolge, die den Status beschreibt.

  function(data,textStatus){
    //data可能是xmlDoc、jsonObj、html、text等
    this; //调用本次ajax请求时传递的options参数
  }

11.error

要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:

  function(XMLHttpRequest,textStatus,errorThrown){
    //通常情况下textStatus和errorThrown只有其中一个包含信息
    this; //调用本次ajax请求时传递的options参数
  }

12.contentType

要求为String类型的参数,当发送信息至服务器时。内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。

13.dataFilter

要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataTYpe参数。函数返回的值将由jQuery进一步处理。

  function(data,type){
    //返回处理后的数据
    return data;
  }

14.global

要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart和ajaxStop可用于控制各种ajax事件。

15.ifModified

要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。

16.jsonp

要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。

17.username

要求为String类型的参数,用于响应HTTP访问认证请求的用户。

18.password

要求为String类型的参数,用于响应HTTP访问认证请求的密码。

19.processData

要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲而非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。

20.scriptCharset

要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。

案例代码:

$(function(){
 $('#send').click(function(){
  $.ajax({
  type: "GET",
  url: "test.json",
  data: {username:$("#username").val(), content:$("#content").val()},
  dataType: "json",
  success: function(data){
    $('#resText').empty(); //清空resText里面的所有内容
    var html = '';
    $.each(data, function(commentIndex, comment){
    html += &#39;<p class="comment"><h6>&#39; + comment[&#39;username&#39;]
      + &#39;:</h6><p class="para"&#39; + comment[&#39;content&#39;]
      + &#39;</p></p>&#39;;
    });
    $(&#39;#resText&#39;).html(html);
   }
  });
 });
});

知识链接:

1、$.each()函数:$.each()函数不同于jQuery对象的each()方法,它是一个全局函数,不操作jQuery对象。该函数接收两个参数,第1个参数是一个数组或对象,第2个参数是一个回调函数。回调函数拥有两个参数:第1个参数为数组的索引或对象的成员,第2个参数为对应的变量或内容。

  $.each(data,function(commentIndex,comment){
  //doSomething;
 })

2、ajaxStart()与ajaxStop():当Ajax请求开始时,会触发ajaxStart()方法的回调函数。当Ajax请求结束时,会触发ajaxStop()方法的回调函数。这些方法都是全局的方法,因此无论创建它们的代码位于何处,只要有Ajax请求发生时,就会触发它们。

有时候页面需要加载一些图片,可能速度回比较慢,如果在加载过程中,不给用户提供一些提示和反馈信息,很容易让用户误认为按钮单击无用,使用户对网站失去信息。

此时,我们就需要为网页添加一个提示信息,常用的提示信息是“加载中...”,代码如下:

<p id="loading">加载中...</p>

当Ajax请求开始时,将此元素显示,用来提示用户Ajax请求正在进行;当Ajax请求结束后,将此元素隐藏。代码如下:

$("#loading").ajaxStart(function(){
    $(this).show();
  }).ajaxStop(function(){
 $(this).hide();
 })

好了,下面再给大家分享一个案例代码:

$(function(){
 $(&#39;#send&#39;).click(function(){
  $.ajax({
  type: "GET",
  url: "test.json",
  data: {username:$("#username").val(), content:$("#content").val()},
  dataType: "json",
  success: function(data){
    $(&#39;#resText&#39;).empty(); //清空resText里面的所有内容
    var html = &#39;&#39;; 
    $.each(data, function(commentIndex, comment){
    html += &#39;<p class="comment"><h6>&#39; + comment[&#39;username&#39;]
      + &#39;:</h6><p class="para"&#39; + comment[&#39;content&#39;]
      + &#39;</p></p>&#39;;
    });
    $(&#39;#resText&#39;).html(html);
   }
  });
 });
});

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

IE8下Ajax缓存问题及解决办法

IE8/IE9下Ajax缓存问题

IE8用ajax访问不能每次都刷新的问题

Das obige ist der detaillierte Inhalt vonUmfassende Analyse der Parameter der $.Ajax()-Methode (grafisches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn