關(guān)于Ajax的總結(jié)

Ajax

什么是Ajax

Ajax = 異步 JavaScript 和 XML。 AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。 通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實現(xiàn)異步更新.

(AJAX代表異步JavaScript和XML嚎京。它是一組用于異步顯示數(shù)據(jù)的相關(guān)技術(shù)诚隙。換句話說既穆,它在不重新加載網(wǎng)頁的情況下發(fā)送和檢索數(shù)據(jù)赎懦。)

為什么要用ajax:

Ajax應(yīng)用程序的優(yōu)勢在于:

  • 通過異步模式,提升了用戶體驗

  • 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸循衰,減少不必要的數(shù)據(jù)往返铲敛,減少了帶寬占用

  • Ajax引擎在客戶端運行褐澎,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作会钝,從而減少了大用戶量下的服務(wù)器負(fù)載。

AJAX最大的特點是什么工三。

Ajax可以實現(xiàn)動態(tài)不刷新(局部刷新)
就是能在不更新整個頁面的前提下維護(hù)數(shù)據(jù)迁酸。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變過的信息俭正。

ajax的優(yōu)點

Ajax的給我們帶來的好處大家基本上都深有體會奸鬓,在這里我只簡單的講幾點:

  • 無刷新更新數(shù)據(jù)。
    AJAX最大優(yōu)點就是能在不刷新整個頁面的前提下與服務(wù)器通信維護(hù)數(shù)據(jù)掸读。這使得Web應(yīng)用程序更為迅捷地響應(yīng)用戶交互串远,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變的信息,減少用戶等待時間儿惫,帶來非常好的用戶體驗澡罚。

  • 異步與服務(wù)器通信。
    AJAX使用異步方式與服務(wù)器通信肾请,不需要打斷用戶的操作留搔,具有更加迅速的響應(yīng)能力。優(yōu)化了Browser和Server之間的溝通铛铁,減少不必要的數(shù)據(jù)傳輸隔显、時間及降低網(wǎng)絡(luò)上數(shù)據(jù)流量。

  • 前端和后端負(fù)載平衡饵逐。
    AJAX可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端括眠,利用客戶端閑置的能力來處理,減輕服務(wù)器和帶寬的負(fù)擔(dān)倍权,節(jié)約空間和寬帶租用成本掷豺。并且減輕服務(wù)器的負(fù)擔(dān),AJAX的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請求和響應(yīng)對服務(wù)器造成的負(fù)擔(dān)萌业,提升站點性能坷襟。

  • 基于標(biāo)準(zhǔn)被廣泛支持。
    AJAX基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù)生年,不需要下載瀏覽器插件或者小程序婴程,但需要客戶允許JavaScript在瀏覽器上執(zhí)行。隨著Ajax的成熟抱婉,一些簡化Ajax使用方法的程序庫也相繼問世档叔。同樣,也出現(xiàn)了另一種輔助程序設(shè)計的技術(shù)蒸绩,為那些不支持JavaScript的用戶提供替代功能衙四。

  • 界面與應(yīng)用分離。
    Ajax使WEB中的界面與應(yīng)用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離)患亿,有利于分工合作传蹈、減少非技術(shù)人員對頁面的修改造成的WEB應(yīng)用程序錯誤、提高效率步藕、也更加適用于現(xiàn)在的發(fā)布系統(tǒng)惦界。


AJAX的缺點

  • AJAX干掉了Back和History功能,即對瀏覽器機(jī)制的破壞咙冗。**
    在動態(tài)更新頁面的情況下沾歪,用戶無法回到前一個頁面狀態(tài),因為瀏覽器僅能記憶歷史記錄中的靜態(tài)頁面雾消。一個被完整讀入的頁面與一個已經(jīng)被動態(tài)修改過的頁面之間的差別非常微妙灾搏;用戶通常會希望單擊后退按鈕能夠取消他們的前一次操作,但是在Ajax應(yīng)用程序中立润,這將無法實現(xiàn)狂窑。

  • AJAX的安全問題。**
    AJAX技術(shù)給用戶帶來很好的用戶體驗的同時也對IT企業(yè)帶來了新的安全威脅范删,Ajax技術(shù)就如同對企業(yè)數(shù)據(jù)建立了一個直接通道蕾域。這使得開發(fā)者在不經(jīng)意間會暴露比以前更多的數(shù)據(jù)和服務(wù)器邏輯。Ajax的邏輯可以對客戶端的安全掃描技術(shù)隱藏起來到旦,允許黑客從遠(yuǎn)端服務(wù)器上建立新的攻擊旨巷。還有Ajax也難以避免一些已知的安全弱點,諸如跨站點腳步攻擊添忘、SQL注入攻擊和基于Credentials的安全漏洞等等采呐。

  • 對搜索引擎支持較弱。**
    對搜索引擎的支持比較弱搁骑。如果使用不當(dāng)斧吐,AJAX會增大網(wǎng)絡(luò)數(shù)據(jù)的流量又固,從而降低整個系統(tǒng)的性能。

  • 破壞程序的異常處理機(jī)制煤率。**
    至少從目前看來仰冠,像Ajax.dll,Ajaxpro.dll這些Ajax框架是會破壞程序的異常機(jī)制的蝶糯。關(guān)于這個問題洋只,曾在開發(fā)過程中遇到過,但是查了一下網(wǎng)上幾乎沒有相關(guān)的介紹昼捍。后來做了一次試驗识虚,分別采用Ajax和傳統(tǒng)的form提交的模式來刪除一條數(shù)據(jù)……給我們的調(diào)試帶來了很大的困難。

  • 違背URL和資源定位的初衷妒茬。**
    例如担锤,我給你一個URL地址,如果采用了Ajax技術(shù)乍钻,也許你在該URL地址下面看到的和我在這個URL地址下看到的內(nèi)容是不同的肛循。這個和資源定位的初衷是相背離的。

  • AJAX不能很好支持移動設(shè)備**团赁。
    一些手持設(shè)備(如手機(jī)育拨、PDA等)現(xiàn)在還不能很好的支持Ajax,比如說我們在手機(jī)的瀏覽器上打開采用Ajax技術(shù)的網(wǎng)站時欢摄,它目前是不支持的。

  • 客戶端過肥笋粟,太多客戶端代碼造成開發(fā)上的成本怀挠。**
    編寫復(fù)雜、容易出錯 害捕;冗余代碼比較多(層層包含js文件是AJAX的通病绿淋,再加上以往的很多服務(wù)端代碼現(xiàn)在放到了客戶端);破壞了Web的原有標(biāo)準(zhǔn)尝盼。

ajax幾種請求方式吞滞?他們的優(yōu)缺點?

常用的post,get,delete盾沫。不常用copy裁赠、head、link等等赴精。

區(qū)別:

(1)post比get安全 (因為post參數(shù)在請求體中佩捞。get參數(shù)在url上面)

(2)get傳輸速度比post快 根據(jù)傳參決定的。(post通過請求體傳參蕾哟,后臺通過數(shù)據(jù)流接收一忱。速度稍微慢一些莲蜘。而get通過url傳參可以直接獲取)

(3)post傳輸文件大理論沒有限制 get傳輸文件小大概7-8k ie4k左右

(4)get獲取數(shù)據(jù) post上傳數(shù)據(jù)(上傳的數(shù)據(jù)比較多 而且上傳數(shù)據(jù)都是重要數(shù)據(jù)。所以不論在安全性還是數(shù)據(jù)量級 post是最好的選擇)

AJAX有哪些安全問題帘营?

  • AJAX源代碼是可讀的
  • 攻擊者可以將腳本插入系統(tǒng)

ajax兼容寫法

function createXHR(){
  if(typeof XMLHttpRequest != "undefined"){
    return new XMLHttpRequest();
  }else if(typeof ActiveXObject != "undefined"){
    var version = [
      "MSXML2.XMLHttp.6.0",
      "MSXML2.XMLHttp.2.0",
      "MSXML2.XMLHttp"
    ];
    for(var i = 0;i<3;i++){
      /*return new ActiveXObject(version[i]);*/
      //使用try{}catch{}防止在創(chuàng)建對象時出錯
      try{
        return new ActiveXObject(version[i]);
      }catch(e){
        //TODO handle the exception
      }
    }
  }else{
    //如果都不支持票渠,則拋出異常
    throw new Error("您老的瀏覽器實在是不行了")
    //alert("您老的瀏覽器實在是不行了");
  }
}

簡述 ajax 的過程

  1. 創(chuàng)建XMLHttpRequest對象,也就是創(chuàng)建一個異步調(diào)用對象
  2. 創(chuàng)建一個新的HTTP請求,并指定該HTTP請求的方法、URL及驗證信息
  3. 設(shè)置響應(yīng)HTTP請求狀態(tài)變化的函數(shù)
  4. 發(fā)送HTTP請求
  5. 獲取異步調(diào)用返回的數(shù)據(jù)
  6. 使用JavaScript和DOM實現(xiàn)局部刷新
    .ajax /.get /.post /.getJson() /.getScript() /().load()

跨域問題

同源策略限制 不同源會造成跨域芬迄。以下任意一種情況不同庄新,都是不同源。

(同源:協(xié)議 域名 端口號全部相同 只要有一個不相同就是非同源策略)

跨域解決方案有哪些

CORS:跨域資源共享

原理:服務(wù)器設(shè)置Access-Control-Allow-OriginHTTP響應(yīng)頭之后薯鼠,瀏覽器將會允許跨域請求

限制:瀏覽器需要支持HTML5择诈,可以支持POST,PUT等方法兼容ie9以上

需要后臺設(shè)置
Access-Control-Allow-Origin: *              //允許所有域名訪問出皇,或者
Access-Control-Allow-Origin: http://a.com   //只允許所有域名訪問

反向代理

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末羞芍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子郊艘,更是在濱河造成了極大的恐慌荷科,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纱注,死亡現(xiàn)場離奇詭異畏浆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狞贱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門刻获,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞎嬉,你說我怎么就攤上這事蝎毡。” “怎么了氧枣?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵沐兵,是天一觀的道長。 經(jīng)常有香客問我便监,道長扎谎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任烧董,我火速辦了婚禮毁靶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘解藻。我一直安慰自己老充,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布螟左。 她就那樣靜靜地躺著啡浊,像睡著了一般觅够。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巷嚣,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天喘先,我揣著相機(jī)與錄音,去河邊找鬼廷粒。 笑死窘拯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的坝茎。 我是一名探鬼主播涤姊,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嗤放!你這毒婦竟也來了思喊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤次酌,失蹤者是張志新(化名)和其女友劉穎恨课,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岳服,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡剂公,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吊宋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纲辽。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贫母,靈堂內(nèi)的尸體忽然破棺而出文兑,到底是詐尸還是另有隱情,我是刑警寧澤腺劣,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站因块,受9級特大地震影響橘原,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涡上,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一趾断、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吩愧,春花似錦芋酌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽同云。三九已至,卻和暖如春堵腹,著一層夾襖步出監(jiān)牢的瞬間炸站,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工疚顷, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留旱易,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓腿堤,卻偏偏與公主長得像阀坏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子笆檀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容