Heim >Web-Frontend >js-Tutorial >jQuery und Ajax und serialization_jquery

jQuery und Ajax und serialization_jquery

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-05-16 15:16:581305Durchsuche

Über AJAX

Das sogenannte Ajax, der vollständige Name ist Asynchronous JavaScript and XML. (Das heißt, asynchrones JS und XML)

Einfach ausgedrückt bedeutet dies, Daten zu senden und zu empfangen, ohne die Seite zu aktualisieren, und dann die Seite zu aktualisieren.

Vorteile von Ajax

•Keine Plug-in-Unterstützung erforderlich
•Ausgezeichnete Benutzererfahrung
•Verbessern Sie die Leistung von Webanwendungen
•Reduzieren Sie die Belastung von Servern und Bandbreite

Nachteile von Ajax

•Unzureichende Browserkompatibilität
• Unterbricht die normale Funktionalität der Vor- und Zurück-Schaltflächen des Browsers
•Unzureichende Unterstützung für Suchmaschinen
•Mangelnde Entwicklungs- und Debugging-Tools

Nun, das waren alles Mängel von vor ein paar Jahren. Die Technologie entwickelt sich rasant und diese Mängel werden nach und nach behoben. Zumindest ist es jetzt nicht schwierig, Ajax zu debuggen.

Der Kern von Ajax ist das XMLHttpRequest-Objekt, das den Schlüssel zur Ajax-Implementierung darstellt.

Ich werde die traditionellen Beispiele für die Implementierung von Ajax nicht erwähnen. Es ist so schmerzhaft, dass ich mich nicht einmal daran erinnert habe, viel im Internet zu suchen.

Über Ajax in jQuery

Die $.ajax()-Methode ist die Ajax-Methode, die die originellsten js kapselt.

load(), $.get(), $.post() sind in $.ajax() gekapselt

$.getScript() und $.getJSON() sind weitere Kapselungen.

•load()-Methode •Verwendung: Remote-HTML-Code laden und in das DOM einfügen. Sie wird normalerweise verwendet, um statische Datendateien zu erhalten. Die Struktur ist: load(url [,data] [,callback]). •url ist die angeforderte Adresse
•data ist optional und ist das an den Server gesendete Parameterobjekt
•callback ist eine Callback-Funktion, die unabhängig davon aufgerufen wird, ob die Anfrage erfolgreich ist oder fehlschlägt
•Sie können beim Laden der Seite sogar Filter zur Adresse hinzufügen

$("#resDiv").load("test.html .myClass");//这个div里只载入test.html页面里面 样式为myClass 的元素


//举一个完整的例子
$(function(){
$("#resDiv").load("text.php",{name:"troy",textInfo:"hello"},function(responseText,textStatus,XMLHttpRequest){
//responseText:请求返回的内容
//textStatus: 请求状态:success、error、notmodiffied、timeout 4种 
//XMLHttpRequest: XMLHttpRequest对象
});
}); 

•$.get()-Methode •Offensichtlich ist die aufrufende Methode anders, daher ist diese Funktion eine globale Funktion von jQuery. Die vorherigen Methoden und Load() arbeiten alle mit jQuery-Objekten
•Die Methode $.get() verwendet die GET-Methode, um asynchrone Anforderungen zu stellen. Die Struktur ist: $.get(url [,data] [,callback] [,type]) •Die ersten drei Parameter werden nicht erwähnt Der einzige Unterschied besteht darin, dass der Rückruf nur aufgerufen wird, wenn die Anfrage erfolgreich ist
•Der Typparameter ist das Format des vom Server zurückgegebenen Inhalts, einschließlich XML, HTML, Skript, JSON, Text und _default
•Beispiel

$("#send").click(function()
$.get("get1.php"
,{
username:$("#username").val(),
content:$("#content").val()
}
,function(data,textStatus){
//data: 返回的内容,可以是XML文档、JSON文件、HTML片段
//textStatus: 请求状态:success、error、notmodiffied、timeout 4种
}
)
}) 

•$.post()-Methode •Sie funktioniert genauso wie die get-Methode, aber eine ist die get-Methode und die andere ist die post-Methode.
•$.getScript()-Methode •Manchmal ist es nicht erforderlich, alle Skripte abzurufen, wenn die Seite zum ersten Mal geladen wird. Daher stellt jQuery die getScript-Methode zum direkten Laden von JS-Dateien bereit.
•Beispiel

$('#send').click(function(){
$.getScript('test.js',function(){
//do something 这个时候脚本已经加载了,不需要再对js文件进行处理
});
}); 

• $.getJSON()-Methode • Wird zum Laden von JSON-Dateien verwendet. Die Verwendung ist dieselbe wie oben, mit der Ausnahme, dass die JSON-Daten zurückgegeben werden

$('#send').click(function(){
$.getJSON("myurl",function(data){
var html="";
$.each(data,function(commentIndex,comment){
html+=commentIndex+":"+comment['username']+";";
})
alert(html);
})
});
//注意一下ecch这种玩法,同样是个全局函数。他的回调函数中,第一个参数为成员的索引,第二个为变量和内容 

Erweitern Sie übrigens JSONP für den domänenübergreifenden Zugriff

$("#send").click(function(){
$.getJSON("http://www.某网站.com/services/getMyCmpJson?tags=car&tagmode=any&format=json&jsoncall back=?"
,function(data){
//某些操作
}
)
})

//JSONP ist ein inoffizielles Protokoll, das eine Kombination aus JSON- und 3f1c4e4b6b16bbbd69b2ee476dc4f83a-Tags verwendet. Es wird hauptsächlich für domänenübergreifende Webanwendungen verwendet.

•$.ajax()-Methode •Diese Methode ist die Ajax-Implementierung von jQuery auf der niedrigsten Ebene und daher natürlich leistungsfähiger und komplexer.

Obwohl es nur einen Parameter hat, enthält dieses Parameterobjekt viele Attribute, die jedoch alle optional sind. Alle Attribute sind unten aufgeführt: • URL: Standardmäßige aktuelle Seitenadresse, Sie können die angeforderte Adresse auch manuell eingeben

•Typ: Der Standardwert ist GET, Sie können auch POST schreiben
•timeout: Anforderungszeitlimit festlegen (Millisekunden)
•Daten: gesendete Daten
•dataType: Der vom Server erwartete Datentyp.
•beforeSend: Die vor dem Senden aufgerufene Funktion. Wenn die Funktion false zurückgibt, wird die Ajax-Anfrage abgebrochen.

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

•complete: Wird aufgerufen, nachdem die Anfrage abgeschlossen ist, unabhängig von Erfolg oder Misserfolg.

function(XMLHttpRequest,textStatus){//textStatus描述成功请求类型
this;//调用本次Ajax请求时传递的options参数
}

•Erfolg: Rückruffunktion, nachdem die Anfrage erfolgreich war

function(data,textStatus){//data为成功返回的数据
this;//调用本次Ajax请求时传递的options参数
}

•Fehler: Funktion wird aufgerufen, wenn die Anfrage fehlschlägt

function(XMLHttpRequest,textStatus,errorThrown){
// textStatus为错误信息,errorThrown为捕获的错误对象,通常只有其中一个包含信息
this;//调用本次Ajax请求时传递的options参数
} 

•global: Der Standardwert ist wahr. Gibt an, ob globale Ajax-Ereignisse ausgelöst werden sollen.
•Elemente serialisieren. •Serialize()-Methode. •Sie kann den Inhalt von DOM-Elementen in einen String

serialisieren
//不仅可以序列化整个表单,也可以序列化单个元素,并且都是自动编码过的
$.post("myurl",$("#form1").serialize(),function(data,textStatus){
$("#resText").html(data);
})

•serializeArray()-Methode •Sie kann DOM-Elementinhalte in das JSON-Format serialisieren
•$.param()-Methode •Dies ist der Kern der Serialisierungsmethode, die zum Serialisieren eines Arrays oder Objekts gemäß Schlüssel-Wert-Paaren

verwendet wird
var obj={a:1,b:2,c:3};
var k=$.param(obj);//输出为a=1&b=2&c=3 

•Globale Ajax-Ereignisse in jQuery •ajaxStart()-Methode: Wird ausgelöst, wenn die Ajax-Anfrage startet
•ajaxStop()-Methode: Wird ausgelöst, wenn die Ajax-Anfrage endet

<div id="loading">加载中...</div>
$("#loading").ajaxStart(function(){
$(this).show();//ajax开始请求就显示加载中
});
$("#loading").ajaxStop(function(){
$(this).hide();//ajax开始结束就隐藏加载中
}); 

•ajaxComplete():当Ajax请求完成就触发
•ajaxError():当Ajax请求发生就触发,捕捉到的错误可以作为最后一个参数传递
•ajaxSend():当Ajax请求发送前就触发
•ajaxSuccess():当Ajax请求成功就触发
•如果想使某个Ajax请求不受全局事件的影响,可以在$.ajax中将global属性设置为false,这个在前面已经讲过了。当然也可以在ajax请求前:

$.ajaxPrefilter(function(options){//每次发送前请求
options.global=true;
})

好吧,写完了。最后顺带提一下,setTimeout("doMethod()",4000);为4s后执行doMethod这个函数。

//一个简单的定时发送功能
function updateMsg(){
$.post("myurl",{time:timestamp},function(xml){
//do something
});
setTimeout("updateMsg()",4000);
}
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