Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der Verwendung der Jquery-Funktionen get, post, ajax und getJSON

php中世界最好的语言
Freigeben: 2018-04-25 16:28:08
Original
1811 Leute haben es durchsucht

Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Verwendung der Funktionen get, post, ajax und getJSON von Jquery geben. Was sind die Vorsichtsmaßnahmen bei der Verwendung der Funktionen get, post, ajax und getJSON? Das Folgende sind praktische Fälle.

hat einen Referenzwert. Freunde, die es benötigen, können sich auf

1 beziehen > Beschreibung: URL ist die Anforderungsadresse, Daten sind die Liste der angeforderten Daten, Rückruf ist die

Rückruffunktion

, nachdem die Anforderung erfolgreich ist. Diese Funktion akzeptiert zwei Parameter, den ersten Vom Server zurückgegebene Daten. Der zweite Parameter ist der Status des Servers, bei dem es sich um einen optionalen Parameter handelt. Unter diesen ist das Format der vom Server zurückgegebenen Daten tatsächlich ein String-Format, nicht das von uns gewünschte JSON-Datenformat. Es wird hier nur zum Vergleich zitiert

$.get("data.php ", $("#firstName.val()"),function(data){$("#getResponse").html(data); }//Die zurückgegebenen Daten sind vom Typ String);


Zweitens $.post(url,[data],[callback],[type])Erklärung: Diese Funktion hat ähnliche Parameter wie $.get() , mit mehr Parametern Es gibt einen Typparameter, Typ ist der angeforderte

Datentyp

, der HTML, XML, JSON und andere Typen sein kann. Wenn wir diesen Parameter auf JSON setzen, lautet das zurückgegebene Format json-Format. Wenn es nicht festgelegt ist, sind es genau wie das von $.get() zurückgegebene Format alle Zeichenfolgen $.post("data.php",$("#firstName.val()"), function(data){$( "#postResponse").html(data.name);},"json"// Der Typ der erhaltenen Daten ist festgelegt, sodass das erhaltene Datenformat der JSON-Typ ist);

3. $.ajax(opiton)Erklärung: $.ajax() ist eine leistungsstarke Funktion, die Ajax genau steuern kann. Wenn Sie eine detaillierte Erklärung benötigen, Bitte beachten Sie die entsprechenden Informationen

$.ajax({url: "ajax/ajax_selectPicType.aspx",data:{Full:"fu"},type: "POST",dataType:'json',success:CallBack, error:function(er){ BackErr(er);}});


Vier, $.getJSON(url,[data],[callback]) $ .getJSON("data.php",$("#firstName.val()"),function(jsonData){$("#getJSONResponse").html(jsonData.id);}/ /Keine Einstellung erforderlich, direkt abrufen Der Datentyp ist json, daher müssen Sie beim Aufruf die Methode jsonData.id verwenden);

Wenn Ajax auf jQuery trifft, gibt es immer mehr AJAX-basierte Anwendungen und Für Front-End-Entwickler ist es keine angenehme Sache, sich direkt mit dem zugrunde liegenden HTTPRequest auseinanderzusetzen. Da jQuery

JavaScript

kapselt, muss das Problem der AJAX-Anwendung berücksichtigt worden sein. Wenn Sie jQuery zum Schreiben von AJAX verwenden, ist dies tatsächlich N-mal bequemer, als es direkt in JS zu schreiben. (Ich frage mich, ob ich meine JS-Kenntnisse verlieren werde, nachdem ich jQuery längere Zeit verwendet habe ...) Hier wird davon ausgegangen, dass jeder mit der jQuery-Syntax vertraut ist, und ich werde einige Anwendungen von Ajax zusammenfassen.

Statische Seite laden

load( url, [data], [callback] ); URL (String) URL-Adresse der angeforderten HTML-Seite

data ( Map) (optionaler Parameter) Schlüssel-/Wertdaten, die an den Server gesendet werden

Rückruf (Callback) (optionaler Parameter) Rückruffunktion, wenn die Anforderung abgeschlossen ist (muss nicht erfolgreich sein)
load()-Methode kann problemlos geladen werden statischen Seiteninhalt in das angegebene jQuery-Objekt. $('#ajax-p').load('data.html');
Auf diese Weise wird der Inhalt von data.html in das DOM-Objekt mit der ID ajax-p geladen. Sie können sogar die Ajax-Operation zum Laden eines Teils des Inhalts implementieren, indem Sie die ID angeben, z. B.:
$('#ajax-p').load('data.html#my-section');

GET- und POST-Methoden implementieren

get( url, [data], [callback] ) url (String) URL-Adresse zum Senden der Anfrage.

Daten (Map)(Optionaler Parameter) Die an den Server zu sendenden Daten, ausgedrückt in Form von Schlüssel/Wert-Paaren, werden beim Laden als QueryString

callback (Callback) (optionaler Parameter) Callback-Funktion an die Anforderungs-URL angehängt ist erfolgreich (Diese Methode wird nur aufgerufen, wenn der Rückgabestatus der Antwort erfolgreich ist)


Offensichtlich ist dies eine Funktion, die speziell die GET-Methode implementiert, und sie ist recht einfach zu verwenden

$.get('login.php', { id : 'Robin', password: '123456', gate : 'index' }, function(data, status) { //data为返回对象,status为请求的状态 alert(data); //此时假设服务器脚本会返回一段文字"你好,Robin!",那么浏览器就会弹出对话框显示该段文字 
alert(status); //结果为success, error等等,但这里是成功时才能运行的函数 });
post( url, [data], [callback], [type] ) url (String) 发送请求的URL地址.
data (Map)(可选参数) 要发送给服务器的数据,以 Key/value 的键值对形式表示
callback (Callback) (可选参数) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)
type (String) (可选参数) 请求数据的类型,xml,text,json等
同样是jQuery提供的一个简便函数,其实用法$.post('regsiter.php', { id:'Robin', password: '123456', type:'user' },function(data, status) { alert(data); }, "json");
Nach dem Login kopieren

Ereignisgesteuertes Laden von Skripten Eingabefunktion: getScript()

getScript( url, [callback] ) url (String) Zu ladende JS-Dateiadresse

callback (Function) (optional) Callback-Funktion nach erfolgreichem Laden

getScript() 函数可以远程载入JavaScript脚本并且执行。这个函数可以跨 域载入JS文件(神奇……?!)。这个函数的意义是巨大 的,它可以很大程度的缩减页面初次载入的代码量,因为你可以根据用户的交互来载入相应的JS文件,而不必在页面初始化的时候全部载入。

$.getScript('ajaxEvent.js', function() { alert("Scripts Loaded!"); //载入ajaxEvent.js,并且在成功载入后显示对话框提示。 
});
Nach dem Login kopieren

构建数据通讯的桥梁:getJSON()

getJSON(url,[data],[callback]) url (String) 发送请求地址

data (Map) (可选) 待发送 Key/value 参数

callback (Function) (可选) 载入成功时回调函数。

JSON 是一种理想的数据传输格式,它能够很好的融合与JavaScript或其他宿主语 言,并且可以被JS直接使用。使用JSON相比传统的通过 GET、POST直接发送”裸体”数据,在结构上更为合理,也更为安全。至于jQuery的getJSON()函数,只是设置了JSON参数的 ajax()函数的一个简化版本。

这个函数也是可以跨域使用的,相比get()、post()有一定优势。另外这个函数可以通过把请求url写 成”myurl?callback=X”这种格式,让程序执行回调函数X。

$.getJSON('feed.php',{ request: images, id: 001, size: large }, function(json) { alert(json.images[0].link); 
//此处json就是远程传回的json对象,假设其格式如下: 
//{'images' : [ 
// {link: images/001.jpg, x :100, y : 100}, 
// {link: images/002.jpg, x : 200, y 200:} 
//]}; 
} );
Nach dem Login kopieren

更底层的ajax()函数

虽然get()和post()函数非常简洁易用,但是对于更复杂的一些设计需求还是无法实现,比如在ajax发送的不同时段做出不同的动作等。jQuery提供一个更为具体的函数:ajax()。

ajax( options ) ajax()提供了一大票参数,所以可以实现相当复杂的功能。

你 可以指定xml、script、html、json作为其数据类型,可以为beforeSend、error、sucess、complete等状态设置 处理函数,众多其它参数也可以订完完全全定义用户的Ajax体验。下面的例子中,我们用ajax()来调用一个XML文档:

$.ajax({ 
url: 'doc.xml', 
type: 'GET', 
dataType: 'xml', 
timeout: 1000, 
error: function(){ 
alert('Error loading XML document'); 
}, 
success: function(xml){ 
alert(xml); 
//此处xml就是XML的jQuery对象了,你可以用find()、next()或XPath等方法在里面寻找节点,和用jQuery操作HTML对象没有区别 
}});
Nach dem Login kopieren

进一步了解AJAX事件

前面讨论的一些方法都有自己的事件处理机制,从页面整体来说,都只能说是局部函数。jQuery提供了AJAX全局函数的定义,以满足特殊的需求。下面是jQuery提供的所有函数(按照触发顺序排列如下):

ajaxStart (全局事件) 开始新的Ajax请求,并且此时没有其他ajax请求正在进行 beforeSend (局部事件) 当一个Ajax请求开始时触发。如果需要,你可以在这里设置XMLHttpRequest对象 ajaxSend (全局事件) 请求开始前触发的全局事件 success (局部事件) 请求成功时触发。即服务器没有返回错误,返回的数据也没有错误 ajaxSuccess 全局事件全局的请求成功 error (局部事件) 仅当发生错误时触发。

你无法同时执行success和error两个回调函数 ajaxError 全局事件全局的发生错误时触发 complete (局部事件) 不管你请求成功还是失败,即便是同步请求,你都能在请求完成时触发这个事件 ajaxComplete 全局事件全局的请求完成时触发 ajaxStop (全局事件) 当没有Ajax正在进行中的时候,触发局部事件在之前的函数中都有介绍,我们主要来看看全局事件。对某个对象进行全局事件监听,那么全局中的AJAX动作,都会对其产生影响。比如,当页面在进行AJAX操作时,ID为”loading”的p就显示出来:

$("#loading").ajaxStart(function(){ $(this).show(); });
Nach dem Login kopieren

全局事件也可以帮助你编写全局的错误相应和成功相应,而不需要为每个AJAX请求独立设置。有必要指出,全局事件的参数是很有用的。除了 ajaxStart、ajaxOptions,其他事件均有event, XMLHttpRequest, ajaxOptions三个参数。第一个参数即事件本身;第二个是XHR对象;第三个是你传递的ajax参数对象。在一个对象里显示全局的AJAX情况:

$("#msg").beforeSend(function(e,xhr,o) { $(this).html("正在请求"+o.url); }).ajaxSuccess(function(e,xhr,o) { $(this).html(o.url+"请求成功"); }).ajaxError(function(e,xhr,o) { $(this).html(o.url+"请求失败");});
Nach dem Login kopieren

很显然,第三个参数也可以帮助你传递你在AJAX事件里加入的自定义参数。
在单个AJAX请求时,你可以将global的值设为false,以将此请求独立于AJAX的全局事件。

$.ajax({ url: "request.php", global: false, 
// 禁用全局Ajax事件. });
Nach dem Login kopieren

如果你想为全局AJAX设置参数,你会用上ajaxSetup()函数。

例如,将所有AJAX请求都传递到request.php,;禁用全局方法;强制用POST方法传递:

$.ajaxSetup({ url: "request.php", global: false, type: "POST"});
Nach dem Login kopieren

一些你不得不知道的方法

写AJAX肯定离不开从页面获取相应的值。在这里简单列举一些方法:

val() val()函数可以返回表单组建的值,例如任何种类input的值。

配合选择符操作,你可以轻易获取选项组、输入框、按钮等元素的值。

$("input[name='info']:text").val();//返回名字为info的文本框的值$("input[name='pass']:password").val();//返回名字为pass的密码框的值
$("input[name='save']:radio").val();//返回名字为save的单选项的值//以此类推serialize() serialize函数可以帮你把表单对象的所有值都转换为字符串序列。
Nach dem Login kopieren

如果你要写GET格式的请求,这个就非常方便了。

serializeArray() 和serialize()类似,只不过它返回的是JSON对象。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎样局部更新Razor页面

ajax如何做出页面局部跳转功能

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der Jquery-Funktionen get, post, ajax und getJSON. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!