ajax技術和原理分析(2)

作者: jnzh  2013-07-31 14:44 [查查吧]:m.uabf.cn

  ajax的優(yōu)點

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

  1、最大的一點是頁面無刷新,在頁面內(nèi)與服務器通信,給用戶的體驗非常好。

  2、使用異步方式與服務器通信,不需要打斷用戶的操作,具有更加迅速的響應能力。

  3、可以把以前一些服務器負擔的工作轉嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的負擔,節(jié)約空間和寬帶租用成本。并且減輕服務器的負擔,ajax的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請求,和響應對服務器造成的負擔。

  4、基于標準化的并被廣泛支持的技術,不需要下載插件或者小程序。

  ajax的缺點

  下面我著重講一講ajax的缺陷,因為平時我們大多注意的都是ajax給我們所帶來的好處諸如用戶體驗的提升。而對ajax所帶來的缺陷有所忽視。

  下面所闡述的ajax的缺陷都是它先天所產(chǎn)生的。

  1、ajax干掉了back按鈕,即對瀏覽器后退機制的破壞。后退按鈕是一個標準的web站點的重要功能,但是它沒法和js進行很好的合作。這是ajax所帶來的一個比較嚴重的問題,因為用戶往往是希望能夠通過后退來取消前一次操作的。那么對于這個問題有沒有辦法?答案是肯定的,用過Gmail的知道,Gmail下面采用的ajax技術解決了這個問題,在Gmail下面是可以后退的,但是,它也并不能改變ajax的機制,它只是采用的一個比較笨但是有效的辦法,即用戶單擊后退按鈕訪問歷史記錄時,通過創(chuàng)建或使用一個隱藏的IFRAME來重現(xiàn)頁面上的變更。(例如,當用戶在Google Maps中單擊后退時,它在一個隱藏的IFRAME中進行搜索,然后將搜索結果反映到Ajax元素上,以便將應用程序狀態(tài)恢復到當時的狀態(tài)。)

  但是,雖然說這個問題是可以解決的,但是它所帶來的開發(fā)成本是非常高的,和ajax框架所要求的快速開發(fā)是相背離的。這是ajax所帶來的一個非常嚴重的問題。

  2、安全問題

  技術同時也對IT企業(yè)帶來了新的安全威脅,ajax技術就如同對企業(yè)數(shù)據(jù)建立了一個直接通道。這使得開發(fā)者在不經(jīng)意間會暴露比以前更多的數(shù)據(jù)和服務器邏輯。ajax的邏輯可以對客戶端的安全掃描技術隱藏起來,允許黑客從遠端服務器上建立新的攻擊。還有ajax也難以避免一些已知的安全弱點,諸如跨站點腳步攻擊、SQL注入攻擊和基于credentials的安全漏洞等。

  3、對搜索引擎的支持比較弱。

  4、破壞了程序的異常機制。至少從目前看來,像ajax.dll,ajaxpro.dll這些ajax框架是會破壞程序的異常機制的。關于這個問題,我曾經(jīng)在開發(fā)過程中遇到過,但是查了一下網(wǎng)上幾乎沒有相關的介紹。后來我自己做了一次試驗,分別采用ajax和傳統(tǒng)的form提交的模式來刪除一條數(shù)據(jù)……給我們的調(diào)試帶來了很大的困難。

  5、另外,像其他方面的一些問題,比如說違背了url和資源定位的初衷。例如,我給你一個url地址,如果采用了ajax技術,也許你在該url地址下面看到的和我在這個url地址下看到的內(nèi)容是不同的。這個和資源定位的初衷是相背離的。

  6、一些手持設備(如手機、PDA等)現(xiàn)在還不能很好的支持ajax,比如說我們在手機的瀏覽器上打開采用ajax技術的網(wǎng)站時,它目前是不支持的,當然,這個問題和我們沒太多關系。

?
發(fā)表評論

醫(yī)療健康