1.jqueryajax请求
2.jquery ajaxçreadyStateåstatusçåºå«å使ç¨
3.vue为何弃用经典的源码jquery.ajax,选择新技术axios?
4.jqueryå¦ä½è·åajaxä¸dataçå¼
jqueryajax请求
jqueryajax请求是什么呢?不知道的小伙伴来看看小编今天的分享吧!
什么是AJAX?
AJAX=异步JavaScript和XML(AsynchronousJavaScriptandXML)。简短地说,源码在不重载整个网页的源码情况下,AJAX通过后台加载数据,源码并在网页上进行显示。源码使用AJAX的源码刘畊宏代码源码原理应用程序案例:谷歌地图、腾讯微博、源码优酷视频、源码人人网等等。源码
jQuery提供多个与AJAX有关的源码方法。通过jQueryAJAX方法,源码能够使用HTTPGet和HTTPPost从远程服务器上请求文本、源码HTML、源码XML或JSON-同时您能够把这些外部数据直接载入网页的源码被选元素中。
jQueryAJAX方法
$.ajax()执行异步AJAX请求
$.ajaxPrefilter()在每个请求发送之前且被$.ajax()处理之前,源码处理自定义Ajax选项或修改已存在选项
$.ajaxSetup()为将来的AJAX请求设置默认值
$.ajaxTransport()创建处理Ajax数据实际传送的对象
$.get()使用AJAX的HTTPGET请求从服务器加载数据
$.getJSON()使用HTTPGET请求从服务器加载JSON编码的数据
$.getScript()使用AJAX的HTTPGET请求从服务器加载并执行JavaScript
$.param()创建数组或对象的序列化表示形式(可用于AJAX请求的URL查询字符串)
$.post()使用AJAX的HTTPPOST请求从服务器加载数据
ajaxComplete()规定AJAX请求完成时运行的函数
ajaxError()规定AJAX请求失败时运行的函数
ajaxSend()规定AJAX请求发送之前运行的函数
ajaxStart()规定第一个AJAX请求开始时运行的函数
ajaxStop()规定所有的AJAX请求完成时运行的函数
ajaxSuccess()规定AJAX请求成功完成时运行的函数
load()从服务器加载数据,并把返回的beanutils cglib 源码数据放置到指定的元素中
serialize()编码表单元素集为字符串以便提交
serializeArray()编码表单元素集为names和values的数组
以上就是小编今天的分享了,希望可以帮助到大家。
jquery ajaxçreadyStateåstatusçåºå«å使ç¨
å¨åå ç¯åæäºjqueryçajaxå¼æ¥ååæ¥ï¼ä»¥åå¼å¸¸çä¸äºå¤çï¼æè§è¿æ²¡ææajaxçreadyStateåstatusè¯´æ¸ æ¥.ä»å¤©å°±æ¥è¯´è¯´ajaxç¶æçé£ç¹äºã
jquery ajaxå½æ°æºä»£ç æ¯è¿æ ·çï¼
var getXmlHttpRequest = function () {
if (window.XMLHttpRequest) {
//主æµæµè§å¨æä¾äºXMLHttpRequest对象
return new XMLHttpRequest();
}
else if (window.ActiveXObject) {
//ä½çæ¬çIEæµè§å¨æ²¡ææä¾XMLHttpRequest对象
//æä»¥å¿ é¡»ä½¿ç¨IEæµè§å¨çç¹å®å®ç°ActiveXObject
return new ActiveXObject("Microsoft.XMLHTTP");
}
};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === ) {
//è·åæååæ§è¡æä½
//æ°æ®å¨xhr.responseText
}
};
xhr.open("TYPE", "URL", true);
xhr.send("");
ä»ä¹æ¯readyState
readyStateæ¯XMLHttpRequest对象çä¸ä¸ªå±æ§ï¼ç¨æ¥æ è¯å½åXMLHttpRequest对象å¤äºä»ä¹ç¶æã
readyStateæ»å ±æ5个ç¶æå¼ï¼åå«ä¸º0~4ï¼æ¯ä¸ªå¼ä»£è¡¨äºä¸åçå«ä¹ï¼å¦ä¸è¡¨æ示ï¼
0 æªåå§åç¶æï¼æ¤æ¶ï¼å·²ç»å建äºä¸ä¸ªXMLHttpRequest对象
1 åå¤åéç¶æï¼æ¤æ¶ï¼å·²ç»è°ç¨äºXMLHttpRequest对象çopenæ¹æ³ï¼å¹¶ä¸XMLHttpRequest对象已ç»åå¤å¥½å°ä¸ä¸ªè¯·æ±åéå°æå¡å¨ç«¯
2 å·²ç»åéç¶æï¼æ¤æ¶ï¼å·²ç»éè¿sendæ¹æ³æä¸ä¸ªè¯·æ±åéå°æå¡å¨ç«¯ï¼ä½æ¯è¿æ²¡ææ¶å°ä¸ä¸ªååº
3 æ£å¨æ¥æ¶ç¶æï¼æ¤æ¶ï¼å·²ç»æ¥æ¶å°HTTPååºå¤´é¨ä¿¡æ¯ï¼ä½æ¯æ¶æ¯ä½é¨åè¿æ²¡æå®å ¨æ¥æ¶å°
4 å®æååºç¶æï¼æ¤æ¶ï¼å·²ç»å®æäºHTTPååºçæ¥æ¶
ä»ä¹æ¯status
statusæ¯XMLHttpRequest对象çä¸ä¸ªå±æ§ï¼è¡¨ç¤ºååºçHTTPç¶æç ã
å¨HTTP1.1åè®®ä¸ï¼HTTPç¶æç æ»å ±å¯å为5大类ï¼å¦ä¸è¡¨æ示ï¼
1XX æå¡å¨æ¶å°è¯·æ±ï¼éè¦ç»§ç»å¤çãä¾å¦ç¶æç ï¼è¡¨ç¤ºæå¡å¨å°éç¥å®¢æ·ç«¯ä½¿ç¨æ´é«çæ¬çHTTPåè®®ã
2XX 请æ±æåãä¾å¦ç¶æç ï¼è¡¨ç¤ºè¯·æ±æå¸æçååºå¤´ææ°æ®ä½å°éæ¤ååºè¿åã
3XX éå®åãä¾å¦ç¶æç ï¼è¡¨ç¤ºä¸´æ¶éå®åï¼è¯·æ±å°å å«ä¸ä¸ªæ°çURLå°åï¼å®¢æ·ç«¯å°å¯¹æ°çå°åè¿è¡GET请æ±ã
4XX 客æ·ç«¯é误ãä¾å¦ç¶æç ï¼è¡¨ç¤ºå®¢æ·ç«¯è¯·æ±çèµæºä¸åå¨ã
5XX æå¡å¨é误ãä¾å¦ç¶æç ï¼è¡¨ç¤ºæå¡å¨éå°äºä¸ä¸ªæªæ¾é¢æçæ åµï¼å¯¼è´äºå®æ æ³å®æååºï¼ä¸è¬æ¥è¯´ï¼è¿ä¸ªé®é¢ä¼å¨ç¨åºä»£ç åºéæ¶åºç°ã
æåºé®é¢
为ä»ä¹onreadystatechangeçå½æ°å®ç°è¦åæ¶å¤æreadyStateåstatuså¢ï¼
æ们ç¥é readyState === 4 å·²ç»è¡¨ç¤ºäºè¯·æ±ååºæåäºï¼ä¸ºä»ä¹è¿è¦åç»çstatuså¢ï¼å¸¦çé®é¢ï¼æ们å¼å§æ¥åä¸äºè¯éªå§ã
åªä½¿ç¨readyStateå¤æ
javascript端çå®ç°ä»£ç å¦ä¸ï¼
var getXmlHttpRequest = function () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
alert(xhr.responseText);
}
};
xhr.open("GET", "/data.aspx", true);
xhr.send("");
æ们å¨æå¡ç«¯æåºå¼å¸¸ï¼
public partial class data : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
throw new Exception("Error");
}
}
è¿è¡javascript代ç ï¼æ示çªå£åºç°äºå¦ä¸ï¼
ITå享
æå¡ååºåºéäºï¼ä½è¿æ¯è¿åäºä¿¡æ¯ï¼è¿å¹¶ä¸æ¯æ们æ³è¦çç»æãæå¼Fiddlerçæ§ï¼å¯ä»¥çå°data.aspxè¿åçæ¯ååºï¼ä½ç±äºåªä½¿ç¨ readystateåå¤æï¼å®ä¸çä¼æ¾åçç»ææ¯è¿æ¯ï¼åªè¦ååºæåè¿åäºï¼å°±æ§è¡æ¥ä¸æ¥çjavascript代ç ï¼ç»æå°é æåç§ä¸å¯ é¢æçé误ãæ以åªä½¿ç¨readyStateå¤ææ¯è¡ä¸éçã
æ¢å¦å¤ä¸ä¸ªè§åº¦æ³ï¼ç¶æç è¿å就表示è¿æ¬¡ååºæ¯æåçäºï¼é£ä¹æ¯ä¸æ¯å¯ä»¥ä¸ä½¿ç¨readyStateï¼åç¬åªä½¿ç¨statusåå¤æå¢ï¼å¥½ï¼å¸¦çé®é¢ï¼ç»§ç»æ¥åè¯éªå§ã
åªä½¿ç¨statuså¤æ
javascript端ç代ç å®ç°å¦ä¸ï¼
var getXmlHttpRequest = function () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.status === ) {
alert("readyState=" + xhr.readyState + xhr.responseText);
}
};
xhr.open("GET", "/data.aspx", true);
xhr.send("");
äº å®ä¸ï¼ç»æå´ä¸åé¢æé£æ ·ãååºç ç¡®å®æ¯è¿åäºï¼ä½æ¯æ»å ±å¼¹åºäº3次çªå£ï¼ç¬¬ä¸æ¬¡æ¯âreadyState=2âççªå£ï¼ç¬¬äºæ¬¡æ¯ âreadyState=3Testâççªå£ï¼ç¬¬ä¸æ¬¡æ¯âreadyState=4Testâççªå£ãç±æ¤ï¼å¯è§onreadystatechangeå½ æ°çæ§è¡ä¸æ¯åªå¨readyStateå为4çæ¶å触åçï¼èæ¯readyStateçæ¯æ¬¡ååé½ä¼è§¦åï¼æ以就åºç°äºåé¢è¯´çé£ç§æ åµãå¯è§ï¼åç¬ä½¿ç¨ statuså¤æä¹æ¯è¡ä¸éçã
è¿ä¸æ¥æè
ç±ä¸é¢çè¯éªï¼æ们å¯ä»¥ç¥éå¤æçæ¶åreadyStateå status缺ä¸ä¸å¯ãé£ä¹readyStateåstatusçå åå¤æ顺åºä¼ä¸ä¼æå½±åå¢ï¼æ们å¯ä»¥å°statusè°å°åé¢å å¤æï¼ä»£ç å¦ xhr.status === && xhr.readyState === 4ã
äºå®ä¸ï¼è¿å¯¹äºæç»çç»æ æ¯æ²¡æå½±åçï¼ä½æ¯ä¸é´çæ§è½å°±ä¸åäºãç±ä¸ä¸ä¸ªè¯éªæ们ç¥éï¼readyStateçæ¯æ¬¡ååé½ä¼è§¦åonreadystatechangeå½æ°ï¼åå¦ å å¤æstatusï¼é£ä¹æ¯æ¬¡é½ä¼å¤å¤æä¸æ¬¡statusçç¶æãè½ç¶æ§è½ä¸å½±åçå¾®ï¼ä¸è¿æ们è¿æ¯åºè¯¥æ±ç追æ±æè´ä»£ç çæ³æ³ï¼æreadyState çå¤ææ¾å¨åé¢ã
vue为何弃用经典的jquery.ajax,选择新技术axios?
深入探究 Vue 与 axios、ajax 的关系,首先需要理解,Vue 选择使用 axios 而非 jQuery.ajax,这一决策并非基于放弃 ajax 技术,而是基于性能优化和易用性考量。
从源码层面来看,开源cms源码axios 确实基于 XMLHttpRequest,即 ajax 技术实现,其封装与优化了 ajax 的使用体验。然而,Vue 选择 axios,并非因为放弃了 ajax,而在于寻求与现代前端开发更好的集成与协同。
Vue 的access源码质量目标是提供简洁、高效、可维护的前端框架。在面对复杂的数据交互需求时,axios 以其简洁的 API、Promise 风格的回调机制、以及对异步操作的友好支持,成为 Vue 推荐的 HTTP 客户端首选。
对比 jQuery.ajax,zblog整站源码axios 更注重与 Promise 的集成,这使得 Vue 在处理异步请求时,能够更加流畅、灵活。此外,axios 提供了更丰富的配置选项,如请求超时、请求头自定义等,这些特性对于 Vue 应用的开发具有显著优势。
在 Vue 生态系统中,axios 作为请求库,与 Vue Router、Vuex 等核心组件相互协作,为开发者提供了一站式解决方案,简化了应用中复杂的网络请求管理。这种协同不仅提升了开发效率,还增强了代码的可读性和可维护性。
综上所述,Vue 选择 axios 并非放弃 ajax,而是在现代前端开发环境下,对工具的精心挑选与优化。通过与 axios 的集成,Vue 实现了性能与易用性的双重提升,为开发者提供了一套高效、灵活的解决方案。因此,对于这类问题,正确的答案不应是质疑,而是对技术选型背后逻辑的深入理解与尊重。
jqueryå¦ä½è·åajaxä¸dataçå¼
$.postã$.getæ¯ä¸äºç®åçæ¹æ³ï¼å¦æè¦å¤çå¤æçé»è¾ï¼è¿æ¯éè¦ç¨å°jQuery.ajax() ã$.ajaxçä¸è¬æ ¼å¼
$.ajax({
type: 'POST',
url: url ,
data: data ,
ãã dataType:dataType ,
success: success ,
error: error
});
æ©å±èµæ
$.ajaxçåæ°æè¿°
åæ° æè¿°
url å¿ éãè§å®æ请æ±åéå°åªä¸ª URLã
data å¯éãæ å°æå符串å¼ãè§å®è¿å请æ±åéå°æå¡å¨çæ°æ®ã
success(data, textStatus, jqXHR) å¯éã请æ±æåæ¶æ§è¡çåè°å½æ°ã
dataType
å¯éãè§å®é¢æçæå¡å¨ååºçæ°æ®ç±»åã
é»è®¤æ§è¡æºè½å¤æï¼xmlãjsonãscript æ htmlï¼ã
$.ajaxéè¦æ³¨æçä¸äºå°æ¹ï¼
1ãdata主è¦æ¹å¼æä¸ç§ï¼htmlæ¼æ¥çï¼jsonæ°ç»ï¼form表åç»serialize()åºååçï¼éè¿dataTypeæå®ï¼ä¸æå®æºè½å¤æã
2ã$.ajaxåªæ交form以ææ¬æ¹å¼ï¼å¦æå¼æ¥æ交å å«<file>ä¸ä¼ æ¯ä¼ è¿ä¸è¿å»,éè¦ä½¿ç¨jquery.form.jsç$.ajaxSubmit