web前端學(xué)習(xí)路線分享了解AJAX是什么首先是服務(wù)器
什么是服務(wù)器:咱們的頁(yè)面來(lái)源于服務(wù)器;實(shí)例(在phpnwo上面存放一個(gè)頁(yè)面),
咱們把頁(yè)面放在互聯(lián)網(wǎng)的服務(wù)器上,就有了自己的網(wǎng)站了。
1.異步同步
生活中的同步:
生活中的異步:
在JavaScript語(yǔ)言中,同步和異步的概念剛好相反。
這JavaScript中同步就是:你不執(zhí)行完上面的代碼,那么下面的代碼你就別執(zhí)行;一步一步執(zhí)行,這就是同步。
異步就是可以一塊執(zhí)行的代碼;
進(jìn)程的概念
進(jìn)程≠程序
程序從開(kāi)始到結(jié)束的一次執(zhí)行過(guò)程叫做進(jìn)程
一個(gè)進(jìn)程當(dāng)中,程序同時(shí)運(yùn)行的多個(gè)分支,叫做線程
多線程異步執(zhí)行,可以提高程序的效率
AJAX的重要性
在許多數(shù)企業(yè)看來(lái)AJAX的使用熟練程度 === 你的工作經(jīng)驗(yàn)。
2.什么是AJAX
ajax是前后端數(shù)據(jù)交互的重要手段
Ajax 全稱(chēng)為:“Asynchronous JavaScript and XML”(異步 JavaScript 和 XML), 它并不是 JavaScript 的一種單一技術(shù),而是利用了一系列交互式網(wǎng)頁(yè)應(yīng)用相關(guān)的技術(shù)所形 成的結(jié)合體。使用 Ajax,我們可以無(wú)刷新?tīng)顟B(tài)更新頁(yè)面,并且實(shí)現(xiàn)異步提交,提升了用戶(hù)體驗(yàn)。
一.Ajax 概述
Ajax 這個(gè)概念是由 JesseJamesGarrett 在 2005 年發(fā)明的。它本身不是單一技術(shù),是一串 技術(shù)的集合,主要有:
1.JavaScript,通過(guò)用戶(hù)或其他與瀏覽器相關(guān)事件捕獲交互行為
2.XMLHttpRequest 對(duì)象,通過(guò)這個(gè)對(duì)象可以在不中斷其它瀏覽器任務(wù)的情況下向服務(wù) 器發(fā)送請(qǐng)求;
3.服務(wù)器上的文件,以 XML、HTML 或 JSON 格式保存文本數(shù)據(jù);
4.其它 JavaScript,解釋來(lái)自服務(wù)器的數(shù)據(jù)(比如 PHP 從 MySQL 獲取的數(shù)據(jù))并將其 呈現(xiàn)到頁(yè)面上。
由于 Ajax 包含眾多特性,優(yōu)勢(shì)與不足也非常明顯。優(yōu)勢(shì)主要以下幾點(diǎn):
1.不需要插件支持(一般瀏覽器且默認(rèn)開(kāi)啟 JavaScript 即可);
2.用戶(hù)體驗(yàn)極佳(不刷新頁(yè)面即可獲取可更新的數(shù)據(jù));
3.提升 Web 程序的性能(在傳遞數(shù)據(jù)方面做到按需放松,不必整體提交);
4.減輕服務(wù)器和帶寬的負(fù)擔(dān)(將服務(wù)器的一些操作轉(zhuǎn)移到客戶(hù)端);
而 Ajax 的不足由以下幾點(diǎn):
1.不同版本的瀏覽器度 XMLHttpRequest 對(duì)象支持度不足(比如 IE5 之前);
2.前進(jìn)、后退的功能被破壞(因?yàn)?Ajax 永遠(yuǎn)在當(dāng)前頁(yè),不會(huì)幾率前后頁(yè)面);
3.搜索引擎的支持度不夠(因?yàn)樗阉饕媾老x(chóng)還不能理解 JS 引起變化數(shù)據(jù)的內(nèi)容);
4.開(kāi)發(fā)調(diào)試工具缺乏(相對(duì)于其他語(yǔ)言的工具集來(lái)說(shuō),JS 或 Ajax 調(diào)試開(kāi)發(fā)少的可憐) 。
3.AJAX的使用
電話的接打順序:
1.首先要有一個(gè)電話;
2.撥號(hào);
3.說(shuō)話;
4.聽(tīng)電話另一邊的信息;
//有一個(gè)電話:創(chuàng)建請(qǐng)求對(duì)象;
1.var AJAX=new XMLHttpRequest( );
//撥號(hào):設(shè)置請(qǐng)求參數(shù);
2.AJAX.open('get','data/test.json',true);
第一個(gè)參數(shù):POST||GET
POST和GET的區(qū)別
POST是發(fā)送數(shù)據(jù),GET是接受數(shù)據(jù);
PSOT發(fā)送數(shù)據(jù)的安全性較好,而GET較差;
POST發(fā)送數(shù)據(jù)不限制大小,而GET大小受限2~100k。
什么時(shí)候用GET和POST那:在數(shù)據(jù)獲取時(shí)用GET方式,在操作數(shù)據(jù)時(shí)應(yīng)使用POST方式。
第三個(gè)參數(shù):當(dāng)該boolean值為true時(shí),服務(wù)器請(qǐng)求是異步進(jìn)行的,也就是腳本執(zhí)行send()方法后不等待
服務(wù)器的執(zhí)行結(jié)果,而是繼續(xù)執(zhí)行腳本代碼;
當(dāng)該boolean值為false時(shí),服務(wù)器請(qǐng)求是同步進(jìn)行的,也就是腳本執(zhí)行send()方法后等待
服務(wù)器的執(zhí)行結(jié)果的返回,若在等待過(guò)程中超時(shí),則不再等待,繼續(xù)執(zhí)行后面的腳本代碼!
3. ajax.onreadystatechange = function()
{
if (ajax.readyState == 4 && ajax.status == 200)
{
func_succ(ajax.responseText);
}
else
{
//alert("ajax faild readyState:"+ajax.readyState+" status:"+ajax.status);
}
};
4.ajax.send(null);
ajax.readyStatus
0 - (未初始化)還沒(méi)有調(diào)用send()方法
1 - (載入)已調(diào)用send()方法,正在發(fā)送請(qǐng)求
2 - (載入完成)send()方法執(zhí)行完成,已經(jīng)接收到全部響應(yīng)內(nèi)容
3 - (交互)正在解析響應(yīng)內(nèi)容
4 - (完成)響應(yīng)內(nèi)容解析完成,可以在客戶(hù)端調(diào)用了
聯(lián)系客服