跨域
概念
Ajax
Ajax,Asynchronous JavaScript and XML,字面意思:異步的 JavaScript 和 XML,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。
用于異步地去獲取XML作為數(shù)據(jù)交換的格式,當(dāng)然,現(xiàn)在的 ajax 并不僅僅局限于XML作為數(shù)據(jù)交換格式,還可以像純文本、XML、HTML、JSON 等格式均可。
特點
使用腳本操縱HTTP和Web服務(wù)器進(jìn)行數(shù)據(jù)交換,不會導(dǎo)致頁面重載。
避免頁面重載(這是Web初期的標(biāo)準(zhǔn)做法)的能力使Web應(yīng)用感覺更像傳統(tǒng)的桌面應(yīng)用。
Web應(yīng)用可以使用Ajax技術(shù)把用戶的交互數(shù)據(jù)記錄到服務(wù)器中;也可以開始只顯示簡單頁面,之后按需加載額外的數(shù)據(jù)和頁面組件來提升應(yīng)用的啟動時間。
異步原理
Ajax 的 A 就是 asynchronous 的簡寫,表示異步。
同步和異步:
同步,按照代碼書寫的順序,一個任務(wù)一個任務(wù)的來執(zhí)行。 異步,并不是按照代碼書寫的順序,通常會結(jié)合回調(diào)和事件來執(zhí)行相應(yīng)代碼。 在同步中,如果有一個任務(wù)耗時較長,整個的后面任務(wù)都需要等待。 在異步中,可以將耗時較長先放起來,執(zhí)行其他的,其他的執(zhí)行完畢,回頭再執(zhí)行這個。 同步:提交請求->等待服務(wù)器處理->處理完畢返回 阻塞模式。 異步:請求通過事件觸發(fā)->服務(wù)器處理->處理完畢。非阻塞模式。
目的
為什么需要Ajax
首先,我們都了解軟件的兩種架構(gòu)形態(tài),C/S(Client/Server)和B/S(Browser/Server)。它們的區(qū)別如下:
C/S,在客戶端安裝了客戶端軟件之后,整個程序的運行,分擔(dān)到客戶端和服務(wù)器端。用戶在操作的時候,體驗更好,響應(yīng)速度非???。
B/S,所務(wù)的服務(wù)都放在服務(wù)器端,通過瀏覽器使用服務(wù)器,用戶在操作的時候,體驗不太好,響應(yīng)速度特別慢。
B/S的好處,就是不需要安裝客戶端,軟件維護(hù)和更新比較方便,用戶體驗不好。
C/S的好處,用戶體驗夠好,響應(yīng)及時,但是軟件的維護(hù)和更新比較麻煩。
隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的C/S應(yīng)用慢慢 轉(zhuǎn)成的B/S,這也是未來的趨勢。但是矛盾很突出,B/S的響應(yīng)速度慢。需要B/S模式具備C/S模式的快速響應(yīng)特點。
Ajax的出現(xiàn)就是為了解決這個問題-----異步刷新。
在異步刷新機制,整個頁面不用跳轉(zhuǎn),只需要更新需要變化的地方。