跨域

概念

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 等格式均可。

特點(diǎn)

  1. 使用腳本操縱HTTP和Web服務(wù)器進(jìn)行數(shù)據(jù)交換,不會導(dǎo)致頁面重載。

  2. 避免頁面重載(這是Web初期的標(biāo)準(zhǔn)做法)的能力使Web應(yīng)用感覺更像傳統(tǒng)的桌面應(yīng)用。

  3. Web應(yīng)用可以使用Ajax技術(shù)把用戶的交互數(shù)據(jù)記錄到服務(wù)器中;也可以開始只顯示簡單頁面,之后按需加載額外的數(shù)據(jù)和頁面組件來提升應(yīng)用的啟動時(shí)間。

異步原理

Ajax 的 A 就是 asynchronous 的簡寫,表示異步。

同步和異步:

同步,按照代碼書寫的順序,一個(gè)任務(wù)一個(gè)任務(wù)的來執(zhí)行。
異步,并不是按照代碼書寫的順序,通常會結(jié)合回調(diào)和事件來執(zhí)行相應(yīng)代碼。

在同步中,如果有一個(gè)任務(wù)耗時(shí)較長,整個(gè)的后面任務(wù)都需要等待。
在異步中,可以將耗時(shí)較長先放起來,執(zhí)行其他的,其他的執(zhí)行完畢,回頭再執(zhí)行這個(gè)。

同步:提交請求->等待服務(wù)器處理->處理完畢返回 阻塞模式。
異步:請求通過事件觸發(fā)->服務(wù)器處理->處理完畢。非阻塞模式。

目的

為什么需要Ajax

首先,我們都了解軟件的兩種架構(gòu)形態(tài),C/S(Client/Server)和B/S(Browser/Server)。它們的區(qū)別如下:

C/S,在客戶端安裝了客戶端軟件之后,整個(gè)程序的運(yùn)行,分擔(dān)到客戶端和服務(wù)器端。用戶在操作的時(shí)候,體驗(yàn)更好,響應(yīng)速度非???。

B/S,所務(wù)的服務(wù)都放在服務(wù)器端,通過瀏覽器使用服務(wù)器,用戶在操作的時(shí)候,體驗(yàn)不太好,響應(yīng)速度特別慢。

B/S的好處,就是不需要安裝客戶端,軟件維護(hù)和更新比較方便,用戶體驗(yàn)不好。

C/S的好處,用戶體驗(yàn)夠好,響應(yīng)及時(shí),但是軟件的維護(hù)和更新比較麻煩。

隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的C/S應(yīng)用慢慢 轉(zhuǎn)成的B/S,這也是未來的趨勢。但是矛盾很突出,B/S的響應(yīng)速度慢。需要B/S模式具備C/S模式的快速響應(yīng)特點(diǎn)。
Ajax的出現(xiàn)就是為了解決這個(gè)問題-----異步刷新。
在異步刷新機(jī)制,整個(gè)頁面不用跳轉(zhuǎn),只需要更新需要變化的地方。

網(wǎng)友評論