ajax

ajax

AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)焦辅。

AJAX 不是新的編程語(yǔ)言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法柠衅。

AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的藝術(shù),在不重新加載整個(gè)頁(yè)面的情況下籍琳。

ajax的使用原理

Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層菲宴,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端趋急,利于客戶端閑置的處理能力來(lái)處理喝峦,減輕服務(wù)器和帶寬的負(fù)擔(dān),從而達(dá)到節(jié)約ISP的空間及帶寬租用成本的目的呜达。

使用 Ajax 原生方式發(fā)送請(qǐng)求主要通過(guò) XMLHttpRequest(IE7+谣蠢、Firefox、Chrome查近、Safari 以及Opera) 眉踱、ActiveXObject(IE5 和 IE6)對(duì)象實(shí)現(xiàn)異步通信效果。

創(chuàng)建XMLHttpRequest對(duì)象:

向服務(wù)器發(fā)送請(qǐng)求:使用 XMLHttpRequest 對(duì)象的 open() 和 send() 方法

使用GET還是POST霜威?

與 POST 相比谈喳,GET 更簡(jiǎn)單也更快,并且在大部分情況下都能用戈泼。

然而婿禽,在以下情況中赏僧,請(qǐng)使用 POST 請(qǐng)求:

無(wú)法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫(kù))

向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒(méi)有數(shù)據(jù)量限制)

發(fā)送包含未知字符的用戶輸入時(shí),POST 比 GET 更穩(wěn)定也更可靠

onreadystatechange事件:當(dāng)請(qǐng)求被發(fā)送到服務(wù)器時(shí)谈宛,我們需要執(zhí)行一些基于響應(yīng)的任務(wù)次哈。每當(dāng) readyState 改變時(shí),就會(huì)觸發(fā) onreadystatechange 事件吆录。

ajax的核心

Ajax的核心是JavaScript對(duì)象XmlHttpRequest窑滞。該對(duì)象在Internet Explorer 5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)恢筝。簡(jiǎn)而言之哀卫,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶撬槽。

ajax的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

無(wú)刷新更新數(shù)據(jù):在不刷新整個(gè)頁(yè)面的情況下維持與服務(wù)器通信

異步與服務(wù)器通信:使用異步的方式與服務(wù)器通信此改,不打斷用戶的操作

前端與后端負(fù)載均衡:將一些后端的工作移到前端,減少服務(wù)器與帶寬的負(fù)擔(dān)

基于規(guī)范被廣泛支持:不需要下載瀏覽器插件或者小程序侄柔,但需要客戶允許JavaScript在瀏覽器上執(zhí)行共啃。

界面與應(yīng)用分離:Ajax使得界面與應(yīng)用分離,也就是數(shù)據(jù)與呈現(xiàn)分離

缺點(diǎn):

Ajax不支持Back與History功能暂题,即對(duì)瀏覽器機(jī)制的破壞:在動(dòng)態(tài)更新頁(yè)面的情況下移剪,用戶無(wú)法回到前一頁(yè)的頁(yè)面狀態(tài),因?yàn)闉g覽器僅能記憶歷史紀(jì)錄中的靜態(tài)頁(yè)面

安全問(wèn)題:AJAX技術(shù)給用戶帶來(lái)很好的用戶體驗(yàn)的同時(shí)也對(duì)IT企業(yè)帶來(lái)了新的安全威脅薪者,Ajax技術(shù)就如同對(duì)企業(yè)數(shù)據(jù)建立了一個(gè)直接通道纵苛。這使得開(kāi)發(fā)者在不經(jīng)意間會(huì)暴露比以前更多的數(shù)據(jù)和服務(wù)器邏輯。ajax的邏輯可以對(duì)客戶端的安全掃描技術(shù)隱藏起來(lái)言津,允許黑客從遠(yuǎn)端服務(wù)器上建立新的攻擊攻人。還有ajax也難以避免一些已知的安全弱點(diǎn),諸如跨站點(diǎn)腳步攻擊悬槽、SQL注入攻擊和基于credentials的安全漏洞等怀吻。

對(duì)搜索引擎支持較弱:如果使用不當(dāng),AJAX會(huì)增大網(wǎng)絡(luò)數(shù)據(jù)的流量初婆,從而降低整個(gè)系統(tǒng)的性能蓬坡。解決的辦法:可以先用服務(wù)器渲染。

破壞程序的異常處理機(jī)制

違背URL與資源定位的初衷

不能很好地支持移動(dòng)設(shè)備

客戶端肥大烟逊,太多客戶段代碼造成開(kāi)發(fā)上的成本

應(yīng)用場(chǎng)景

動(dòng)態(tài)加載數(shù)據(jù)渣窜,按需取得數(shù)據(jù)铺根∠芮【樹(shù)形菜單、聯(lián)動(dòng)菜單…/省市聯(lián)動(dòng)】

改善用戶體驗(yàn)位迂》醚【輸入內(nèi)容前提示详瑞、帶進(jìn)度條文件上傳…】

電子商務(wù)應(yīng)用〕甲海【購(gòu)物車(chē)坝橡、郵件訂閱…】訪問(wèn)第三方服務(wù)【茫【訪問(wèn)搜索服務(wù)计寇、rss閱讀器】

數(shù)據(jù)的布局刷新

不適用于搜索 ,基本的導(dǎo)航脂倦,替換大量的文本番宁,部分簡(jiǎn)單的表單

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赖阻,隨后出現(xiàn)的幾起案子蝶押,更是在濱河造成了極大的恐慌,老刑警劉巖火欧,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棋电,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡苇侵,警方通過(guò)查閱死者的電腦和手機(jī)赶盔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)衅檀,“玉大人招刨,你說(shuō)我怎么就攤上這事“Ь” “怎么了沉眶?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)杉适。 經(jīng)常有香客問(wèn)我谎倔,道長(zhǎng),這世上最難降的妖魔是什么猿推? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任片习,我火速辦了婚禮,結(jié)果婚禮上蹬叭,老公的妹妹穿的比我還像新娘藕咏。我一直安慰自己,他們只是感情好秽五,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布孽查。 她就那樣靜靜地躺著,像睡著了一般坦喘。 火紅的嫁衣襯著肌膚如雪盲再。 梳的紋絲不亂的頭發(fā)上西设,一...
    開(kāi)封第一講書(shū)人閱讀 49,785評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音答朋,去河邊找鬼贷揽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梦碗,可吹牛的內(nèi)容都是我干的禽绪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼洪规,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼丐一!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起淹冰,我...
    開(kāi)封第一講書(shū)人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤库车,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后樱拴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體柠衍,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年晶乔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了珍坊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡正罢,死狀恐怖阵漏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翻具,我是刑警寧澤履怯,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站裆泳,受9級(jí)特大地震影響叹洲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜工禾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一运提、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闻葵,春花似錦民泵、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春签钩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坏快。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工铅檩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人莽鸿。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓昧旨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親祥得。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兔沃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

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

  • 大家好饮焦,我是IT修真院深圳分院第3期的學(xué)員怕吴,一枚正直純潔善良的前端程序員,今天給大家分享一下县踢,修真院官網(wǎng)前端工程師...
    大大頭大閱讀 7,598評(píng)論 1 72
  • 1.什么是Ajax呢转绷? Ajax是Asynchronous JavaScript and XML的縮寫(xiě),核心是通過(guò)...
    Love大豬蹄子嘚MM閱讀 273評(píng)論 0 0
  • AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 X...
    hx永恒之戀閱讀 6,872評(píng)論 7 135
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,179評(píng)論 0 7
  • 1.簡(jiǎn)介 瀏覽器與服務(wù)器之間硼啤,采用 HTTP 協(xié)議通信议经。用戶在瀏覽器地址欄鍵入一個(gè)網(wǎng)址,或者通過(guò)網(wǎng)頁(yè)表單向服務(wù)器提...
    wit92閱讀 339評(píng)論 0 0