Ajax與傳統Web開發的區別


基本概念

1.1,Ajax

AJAX:即“Asynchronous Javascript And XML”(異步的JavaScript和XML),是指一種創建交互式網頁應用的網頁開發技術,尤其是在一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。Ajax的應用實例有:新浪微博、Google 地圖、開心網等等。

1.2,傳統Web開發

World Wide Web(簡稱Web):是隨着Internet的普及使用而發展起來的一門技術,其開發模式是一種請求→刷新→響應的模式,每個請求由單獨的一個頁面來顯示,發送一個請求就會重新獲取這個頁面。

1.3,同步

同步通信方式,是把許多字符組成一個信息組,這樣,字符可以一個接一個地傳輸,但是,在每組信息(通常稱為信息幀)的開始要加上同步字符,在沒有信息要傳輸時,要填上空字符,因為同步傳輸不允許有間隙。同步方式下,發送方除了發送數據,還要傳輸同步時鍾信號,信息傳輸的雙方用同一個時鍾信號確定傳輸過程中每1位的位置。(傳統的Web開發)

1.4,異步

異步通信方式:是將比特分成小組來進行傳送。一般每個小組是一個8位字符,在每個小組的頭部和尾部都有一個開始位和一個停止位,它在傳送過程中接收方和發送方的時鍾不要求一致,也就是說,發送方可以在任何時刻發送這些小組,而接收方並不知道它什么時候到達。(Ajax)

附:同步通信和異步通信示意圖

1.5,理解

看到Ajax和傳統的Web開發時,就突然想起了前段時間剛剛總結的軟工過程模型。傳統的Web開發就好比是瀑布模型,它的下一步實現,完全建立在上一步的基礎之上,如果上一步沒有完成,下一步就沒辦法開展,當用戶向服務器發送請求時,服務器端必須完全處理好客戶端的請求,然后客戶端完全接收到服務器端的響應后,才能繼續進行操作。如果是刷新,那么久必須刷新整個頁面,當整個頁面都加載出來時,才可以進行顯示。而Ajax技術,就可以看做是增量、螺旋、噴泉等了。它的下一步實現,並不完全依賴於上一步的實現。就像是增量一樣,它可以將一個大型的請求,分化為很多個不等的增量增量模型,在這里,我理解其為局部實現。就好似Ajax中的局部刷新,我可以將我的真個Web頁划分為不等的增量,每個增量都是獨立的,我可以獨立的對其中某一個增量進行一次完整的請求-刷新-顯示。(個人理解)

 

聯系和區別

聯系:Ajax也是一種網站開發技術!

主要區別

探究傳統Web開發和Ajax技術的區別,首先看其各自的程序模型:

效率:1,從同步和異步的通信方式中可以看出,異步中數據所占的比例少於同步中數據所占的比例,所以其數據傳輸效率小於同步通信(傳統的Web開發)。2,Ajax開發相對於傳統的Web開發,增添了一個Ajax引擎,這一個模塊主要用於對服務器端傳送過來的數據進行解析,在這一過程中,相對於傳統的Web開發,其數據量大大減少(原因:結合第一點),所以,其效率相對於傳統Web開發要高。

交互方式:Ajax采用異步通信,主要以數據交互為主;傳統的web開發采用同步同喜,主要以頁面交互為主。

 

Ajax本身的不足

1,破壞了瀏覽器的后退機制。

原因:Ajax實現了動態更新數據,瀏覽器並沒有對整頁進行更新加載,而僅僅是局部,作為用戶無法通過Back按鈕回復到上一級狀態。

解決方案:設置一個隱藏的容器,將網站記錄保存起來,當用戶需要返回到上一級時,在這個隱藏的容易里面進行搜索。(個人猜想:不運用這個隱藏的容器,運用設計模式中的備忘錄模式,但如果說采取設計模式,那么最多可保存一個狀態頁,簡單說來,后退按鈕只可以執行一次。)

2,兼容性不高,對瀏覽器的支持比較弱

這一點目前還沒有具體的體會,只是在寫demo的時候,運用到Ajax的時候,要特別的對搜索引擎進行分類處理。

備注:Ajax的優點,有時也剛巧就帶來的它的不足,目前能夠理解的就這兩點,但實際上Ajax還破壞了安全機制、異常機制,違背了資源定位等。這些都需要進一步的學習和實踐去驗證。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM