本篇文章為大家展示了ajax的技術(shù)和原理是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),亞東企業(yè)網(wǎng)站建設(shè),亞東品牌網(wǎng)站建設(shè),網(wǎng)站定制,亞東網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,亞東網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。ajax所包含的技術(shù)
大家都知道ajax并非一種新的技術(shù),而是幾種原有技術(shù)的結(jié)合體。它由下列技術(shù)組合而成。
1.使用CSS和XHTML來表示。
2. 使用DOM模型來交互和動態(tài)顯示。
3.使用XMLHttpRequest來和服務(wù)器進行異步通信。
4.使用javascript來綁定和調(diào)用。
在上面幾中技術(shù)中,除了XmlHttpRequest對象以外,其它所有的技術(shù)都是基于web標準并且已經(jīng)得到了廣泛使用的,XMLHttpRequest雖然目前還沒有被W3C所采納,但是它已經(jīng)是一個事實的標準,因為目前幾乎所有的主流瀏覽器都支持它。
ajax原理和XmlHttpRequest對象
Ajax的原理簡單來說通過XmlHttpRequest對象來向服務(wù)器發(fā)異步請求,從服務(wù)器獲得數(shù)據(jù),然后用javascript來操作DOM而更新頁面。這其中最關(guān)鍵的一步就是從服務(wù)器獲得請求數(shù)據(jù)。要清楚這個過程和原理,我們必須對 XMLHttpRequest有所了解。
XMLHttpRequest是ajax的核心機制,它是在IE5中首先引入的,是一種支持異步請求的技術(shù)。簡單的說,也就是javascript可以及時向服務(wù)器提出請求和處理響應(yīng),而不阻塞用戶。達到無刷新的效果。
所以我們先從XMLHttpRequest講起,來看看它的工作原理。
首先,我們先來看看XMLHttpRequest這個對象的屬性。
它的屬性有:
onreadystatechange 每次狀態(tài)改變所觸發(fā)事件的事件處理程序。
responseText 從服務(wù)器進程返回數(shù)據(jù)的字符串形式。
responseXML 從服務(wù)器進程返回的DOM兼容的文檔數(shù)據(jù)對象。
status 從服務(wù)器返回的數(shù)字代碼,比如常見的404(未找到)和200(已就緒)
status Text 伴隨狀態(tài)碼的字符串信息
readyState 對象狀態(tài)值
0 (未初始化) 對象已建立,但是尚未初始化(尚未調(diào)用open方法)
1 (初始化) 對象已建立,尚未調(diào)用send方法
2 (發(fā)送數(shù)據(jù)) send方法已調(diào)用,但是當前的狀態(tài)及http頭未知
3 (數(shù)據(jù)傳送中) 已接收部分數(shù)據(jù),因為響應(yīng)及http頭不全,這時通過responseBody和responseText獲取部分數(shù)據(jù)會出現(xiàn)錯誤,
4 (完成) 數(shù)據(jù)接收完畢,此時可以通過通過responseXml和responseText獲取完整的回應(yīng)數(shù)據(jù)。
ajax的優(yōu)點
Ajax的給我們帶來的好處大家基本上都深有體會,在這里我只簡單的講幾點:
1、較大的一點是頁面無刷新,在頁面內(nèi)與服務(wù)器通信,給用戶的體驗非常好。
2、使用異步方式與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力。
3、可以把以前一些服務(wù)器負擔的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務(wù)器和帶寬的負擔,節(jié)約空間和寬帶租用成本。并且減輕服務(wù)器的負擔,ajax的原則是“按需取數(shù)據(jù)”,可以較大程度的減少冗余請求,和響應(yīng)對服務(wù)器造成的負擔。
4、基于標準化的并被廣泛支持的技術(shù),不需要下載插件或者小程序。
ajax的缺點
下面我著重講一講ajax的缺陷,因為平時我們大多注意的都是ajax給我們所帶來的好處諸如用戶體驗的提升。而對ajax所帶來的缺陷有所忽視。
下面所闡述的ajax的缺陷都是它先天所產(chǎn)生的。
1、ajax干掉了back按鈕,即對瀏覽器后退機制的破壞。后退按鈕是一個標準的web站點的重要功能,但是它沒法和js進行很好的合作。這是ajax所帶來的一個比較嚴重的問題,因為用戶往往是希望能夠通過后退來取消前一次操作的。那么對于這個問題有沒有辦法?答案是肯定的,用過Gmail的知道,Gmail下面采用的ajax技術(shù)解決了這個問題,在Gmail下面是可以后退的,但是,它也并不能改變ajax的機制,它只是采用的一個比較笨但是有效的辦法,即用戶單擊后退按鈕訪問歷史記錄時,通過創(chuàng)建或使用一個隱藏的IFRAME來重現(xiàn)頁面上的變更。(例如,當用戶在Google Maps中單擊后退時,它在一個隱藏的IFRAME中進行搜索,然后將搜索結(jié)果反映到Ajax元素上,以便將應(yīng)用程序狀態(tài)恢復(fù)到當時的狀態(tài)。)
但是,雖然說這個問題是可以解決的,但是它所帶來的開發(fā)成本是非常高的,和ajax框架所要求的快速開發(fā)是相背離的。這是ajax所帶來的一個非常嚴重的問題。
2、安全問題
技術(shù)同時也對IT企業(yè)帶來了新的安全威脅,ajax技術(shù)就如同對企業(yè)數(shù)據(jù)建立了一個直接通道。這使得開發(fā)者在不經(jīng)意間會暴露比以前更多的數(shù)據(jù)和服務(wù)器邏輯。ajax的邏輯可以對客戶端的安全掃描技術(shù)隱藏起來,允許黑客從遠端服務(wù)器上建立新的攻擊。還有ajax也難以避免一些已知的安全弱點,諸如跨站點腳步攻擊、SQL注入攻擊和基于credentials的安全漏洞等。
3、對搜索引擎的支持比較弱。
4、破壞了程序的異常機制。至少從目前看來,像ajax.dll,ajaxpro.dll這些ajax框架是會破壞程序的異常機制的。關(guān)于這個問題,我曾經(jīng)在開發(fā)過程中遇到過,但是查了一下網(wǎng)上幾乎沒有相關(guān)的介紹。后來我自己做了一次試驗,分別采用ajax和傳統(tǒng)的form提交的模式來刪除一條數(shù)據(jù)……給我們的調(diào)試帶來了很大的困難。
5、另外,像其他方面的一些問題,比如說違背了url和資源定位的初衷。例如,我給你一個url地址,如果采用了ajax技術(shù),也許你在該url地址下面看到的和我在這個url地址下看到的內(nèi)容是不同的。這個和資源定位的初衷是相背離的。
6、一些手持設(shè)備(如手機、PDA等)現(xiàn)在還不能很好的支持ajax,比如說我們在手機的瀏覽器上打開采用ajax技術(shù)的網(wǎng)站時,它目前是不支持的,當然,這個問題和我們沒太多關(guān)系。
上述內(nèi)容就是ajax的技術(shù)和原理是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞標題:ajax的技術(shù)和原理是什么-創(chuàng)新互聯(lián)
當前URL:http://www.rwnh.cn/article18/cegcdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、微信小程序、軟件開發(fā)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容