成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

再也不學(xué)AJAX了?。ㄒ唬〢JAX概述

neu / 3539人閱讀

摘要:需要注意的是,并不是的替代品,兩者各自有其適應(yīng)的場景。但為了方便交流,我們通常將獲取資源的一方稱為客戶端主要的工具是瀏覽器,而將派發(fā)資源的一方稱為服務(wù)端又稱為服務(wù)器。它可以幫助我們?yōu)橹蟾拍罴毠?jié)的學(xué)習(xí)打下良好基礎(chǔ)。

“再也不學(xué)AJAX了”是一個與AJAX主題相關(guān)的文章系列,包含以下三個部分的內(nèi)容:

AJAX概述:主要回答“AJAX是什么”這個問題;

使用AJAX:介紹如何通過JavaScript發(fā)送AJAX請求;

跨域獲取數(shù)據(jù):介紹了與“跨域發(fā)送AJAX請求”相關(guān)的一些內(nèi)容:比如“瀏覽器同源策略”與四種跨域請求資源的方式:JSONP,CORS,postMessage和webSocket;

希望通過閱讀該系列三個部分的內(nèi)容,你能夠徹底理解并掌握AJAX技術(shù),從此再也不用專門學(xué)習(xí)AJAX。

讓我們開始吧 ?。

一、什么是AJAX?

AJAX是“Asynchronous JavaScript And XML”的縮寫(即:異步的JavaScript和XML),是一種實現(xiàn)無頁面刷新獲取服務(wù)器數(shù)據(jù)的混合技術(shù)。

讓我們停下來好好思考一下這個定義,注意那些醒目的藍色文字,它們出現(xiàn)在那里不是沒有理由的。

好的,相信你已經(jīng)對這個定義有些印象,現(xiàn)在讓我對那些藍色的文字做些說明:

(一)XML是什么?

XML是“Extensible Markup Language”的縮寫(即:可拓展標(biāo)記語言),是一種特征類似HTML,用來描述數(shù)據(jù)是什么,并承載數(shù)據(jù)的標(biāo)記語言,你可以在中文的維基百科中看到更完整的解釋,但我們現(xiàn)在只要知道它是一種用來承載數(shù)據(jù)的語言就足夠了。

而JSON僅僅是一種數(shù)據(jù)格式,在JSON發(fā)明之前,人們大量使用XML作為數(shù)據(jù)傳輸?shù)妮d體,也正因如此,AJAX技術(shù)的最后一個字母為“X”。而如今情況則發(fā)生了些變化,JSON這種類似于字符串對象的輕量級的數(shù)據(jù)格式越來越受到開發(fā)者青睞,幾乎變成了AJAX技術(shù)的標(biāo)準(zhǔn)數(shù)據(jù)格式,因此好像AJAX技術(shù)如今應(yīng)該換個名字,叫做“AJAJ”,呃,還是算了吧。

需要注意的是,JSON并不是XML的替代品,兩者各自有其適應(yīng)的場景。如果你對這兩種數(shù)據(jù)格式的差異感興趣,可以查看以下鏈接:

為什么XML這么笨重的數(shù)據(jù)結(jié)構(gòu)仍在廣泛應(yīng)用?

為什么都反對XML而支持使用JSON

Stop Comparing JSON and XML

JSON and XML comparison

(二)無頁面刷新?

我們知道,互聯(lián)網(wǎng)最主要的功能在于“資源交換”,當(dāng)初發(fā)明互聯(lián)網(wǎng)的科學(xué)家們也是基于這個動機。雖然在互聯(lián)網(wǎng)中“資源交換”的主體都是計算機。但為了方便交流,我們通常將獲取資源的一方稱為客戶端(主要的工具是瀏覽器),而將派發(fā)資源的一方稱為服務(wù)端(又稱為“服務(wù)器”)。

在AJAX技術(shù)出現(xiàn)之前,如果瀏覽器需要從服務(wù)器請求資源,其交互模式為“客戶端發(fā)出請求 -> 服務(wù)端接收請求并返回相應(yīng)HTML文檔 -> 頁面刷新,客戶端加載新的HTML文檔”。確實,這種交互模式十分簡潔明了,而且非常符合人的直覺,對于那時游走于互聯(lián)網(wǎng)中的極客而言,也確實夠用了。但是隨著時代的進步,互聯(lián)網(wǎng)漸漸不只是極客們的娛樂場,越來越多商業(yè)化網(wǎng)站的出現(xiàn),使互聯(lián)網(wǎng)不再局限于滿足人們“資源交換”的需求,人們開始期待能夠在互聯(lián)網(wǎng)中獲得更好的“使用體驗”,而隨著用戶點擊不斷刷新頁面的交互方式顯然很難討人喜歡。

再試想這樣一種情景,當(dāng)用戶點擊頁面中的某個按鈕向服務(wù)器發(fā)送請求時,頁面本質(zhì)上只是一些數(shù)據(jù)發(fā)生了變化,而此時服務(wù)器卻要將重繪的整個頁面再返回給瀏覽器加載,這顯然有悖于程序員的“DRY”原則,而且明明只是一些數(shù)據(jù)的變化卻迫使服務(wù)器要返回整個HTML文檔,這本身也會給網(wǎng)絡(luò)帶寬帶來不必要的開銷。

有沒有辦法在頁面數(shù)據(jù)變動時,只向服務(wù)器請求新的數(shù)據(jù),并且在阻止頁面刷新的情況下,動態(tài)的替換頁面中展示的數(shù)據(jù)呢? -- 答案正是“AJAX”。

AJAX技術(shù)的問世,不僅通過阻止瀏覽器接受響應(yīng)時刷新頁面提升了互聯(lián)網(wǎng)用戶的使用體驗,還使開發(fā)者能夠以更加微觀的視角重新思考互聯(lián)網(wǎng)應(yīng)用的構(gòu)建,從此,開發(fā)者將在“數(shù)據(jù)”層面而不是“資源”層面以更高的自由度構(gòu)建網(wǎng)站和Web應(yīng)用。

(三)混合技術(shù)?

是的,AJAX技術(shù)并不只是操作XMLHttpRequest對象發(fā)起異步請求,而是為了實現(xiàn)“無頁面刷新的資源獲取”的一些列技術(shù)的統(tǒng)稱,這些技術(shù)包括了:

JavaScript:用來在獲取數(shù)據(jù)后,通過操作DOM或其他方式達成目標(biāo);

客戶端(即瀏覽器)提供的實現(xiàn)異步服務(wù)器通信的XMLHttpRequest對象;

服務(wù)器端允許瀏覽器向其發(fā)起AJAX請求的相關(guān)設(shè)置;

明白AJAX并不只是操作XMLHttpRequest對象,對于初學(xué)者而言是十分必要的。

二、AJAX的意義

相信你已經(jīng)明白了,AJAX技術(shù)的意義在于:它能夠使瀏覽器在不刷新頁面的情況下獲取服務(wù)器響應(yīng),這將大大提升互聯(lián)網(wǎng)用戶的使用體驗,同時,由于AJAX請求獲取的是數(shù)據(jù)而不是HTML文檔,因此它也節(jié)省了網(wǎng)絡(luò)帶寬,讓互聯(lián)網(wǎng)用戶的網(wǎng)絡(luò)沖浪體驗變得更加順暢。

同時,我們也應(yīng)該注意到,由于AJAX技術(shù)可以令開發(fā)者只向服務(wù)器獲取數(shù)據(jù)(而不是圖片,HTML文檔等資源),互聯(lián)網(wǎng)資源的傳輸變得前所未有的輕量級和純粹,這激發(fā)了廣大開發(fā)者的創(chuàng)造力,使各式各樣功能強大的網(wǎng)絡(luò)站點,和互聯(lián)網(wǎng)應(yīng)用如雨后春筍一般冒出,不斷帶給人驚喜。

三、小結(jié)

本文我們講解了“什么是AJAX”以及“AJAX的意義”,你可能會覺得一篇技術(shù)文章沒有代碼實在很古怪,但我覺得在一開始就對某個概念建立起正確的心智模型很重要。它可以幫助我們?yōu)橹蟾拍罴毠?jié)的學(xué)習(xí)打下良好基礎(chǔ)。別著急,在下一篇文章中,我們會花費大量篇幅去討論如何使用AJAX技術(shù),希望你保持耐心,Keep Learning,加油!?







? Hey!喜歡這篇文章嗎?別忘了在下方? 點贊讓我知道。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/90063.html

相關(guān)文章

  • 再也不學(xué)AJAX?。ㄈ┛缬颢@取資源 ① - 同源策略

    摘要:瀏覽器的同源策略瀏覽器所遵守的同源策略是指限制不同源之間執(zhí)行特定操作。這正是同源策略想要規(guī)避的安全隱患。目前為止,你已經(jīng)充分了解同源策略這個主題。 我們之前提到過,AJAX技術(shù)使開發(fā)者能夠?qū)W⒂诨ヂ?lián)網(wǎng)中數(shù)據(jù)的傳輸,而不再拘泥于數(shù)據(jù)傳輸?shù)妮d體。通過AJAX技術(shù),我們獲取數(shù)據(jù)的方式變得更加靈活,可控和優(yōu)雅。 但是AJAX技術(shù)并不是一把萬能鑰匙,互聯(lián)網(wǎng)中的數(shù)據(jù)隱私和數(shù)據(jù)安全(例如你的銀行賬號...

    godlong_X 評論0 收藏0
  • 再也不學(xué)AJAX?。ㄈ┛缬颢@取資源 ③ - WebSocket & postMessag

    摘要:一基于維基百科的定義,是一種在單個連接上進行全雙工通訊的協(xié)議。讓我們看看這個模型的具體實現(xiàn)下面是客戶端告知服務(wù)端要升級為協(xié)議的報頭下面是服務(wù)端向客戶端返回的響應(yīng)報頭想知道這些報頭中的字段中代表什么可以參考維基百科下的說明。 讓我們先簡單回顧一下之前談到的內(nèi)容,AJAX是一種無頁面刷新的獲取服務(wù)器資源的混合技術(shù)。而基于瀏覽器的同源策略,不同域之間不可以發(fā)送AJAX請求。但是在某些情境下,...

    liangzai_cool 評論0 收藏0
  • 再也不學(xué)AJAX?。ǘ┦褂?em>AJAX

    摘要:隨著對象被廣泛的接收,也開始著手制定相應(yīng)的標(biāo)準(zhǔn)來規(guī)范其行為。四設(shè)置請求頭每個請求和響應(yīng)都會帶有相應(yīng)的頭部信息,包含一些與數(shù)據(jù),收發(fā)者網(wǎng)絡(luò)環(huán)境與狀態(tài)等相關(guān)信息。該方法會令對象實例停止觸發(fā)事件,并且不再允許訪問任何和響應(yīng)有關(guān)的對象屬性。 在上一篇文章中我們知道,AJAX是一系列技術(shù)的統(tǒng)稱。在本篇中我們將更進一步,詳細解釋如何使用Ajax技術(shù)在項目中獲取數(shù)據(jù)。而為了解釋清楚,我們首先要搞清楚...

    nemo 評論0 收藏0
  • 再也不學(xué)AJAX?。ㄈ┛缬颢@取資源 ② - JSONP & CORS

    摘要:瀏覽器的同源策略固然保障了互聯(lián)網(wǎng)世界的數(shù)據(jù)隱私與數(shù)據(jù)安全,但是如果當(dāng)我們需要使用跨域請求資源時,同源策略又會成為開發(fā)者的阻礙。我們之前提到過,如果想要繞過瀏覽器同源策略,實現(xiàn)使用技術(shù)跨域獲取資源,需要服務(wù)端和客戶端的協(xié)同合作。 瀏覽器的同源策略固然保障了互聯(lián)網(wǎng)世界的數(shù)據(jù)隱私與數(shù)據(jù)安全,但是如果當(dāng)我們需要使用AJAX跨域請求資源時,同源策略又會成為開發(fā)者的阻礙。在本文中,我們會簡單介紹需...

    enda 評論0 收藏0
  • Ajax原理篇就夠

    摘要:請求數(shù)據(jù)流程與領(lǐng)導(dǎo)想找小李匯報一下工作類似。表示從客戶端發(fā)來的請求在服務(wù)器端被正常處理了。表示永久性重定向。該狀態(tài)碼表示請求的資源已被分配了新的,以后應(yīng)使用資源現(xiàn)在所指的。表示服務(wù)器端在執(zhí)行請求時發(fā)生了錯誤。 前言 AJAX即Asynchronous Javascript And XML,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。它可以令開發(fā)...

    hiYoHoo 評論0 收藏0

發(fā)表評論

0條評論

neu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<