<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    gaojing's technology space

    Knowledge is power
    posts - 27, comments - 3, trackbacks - 0, articles - 0
      BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理
    1、Ajax的含義:
    ???Ajax的全稱是 Asynchronous JavaScript And XML (異步JavaScript?和?XML),它不是一項新技術,而是很多成熟技術的集合。
    ???和Applet,Flash相比,Ajax則是一種輕量級的解決方案。因為它操作的基礎是HTML或者是XHTML,使用的教本語言是JavaScript,這可以保證它的純文本性質,它具有更好的搜索引擎友好性;設計出色的Ajax應用還可以很好的工作在舊版本的設備上;利用XML,Ajax可以和其他應用程序方便地進行通信。Ajax可以迅速贏得別個注意的另一個重要原因還在于它完全是基于成熟的技術,作為異步調用的基礎設施XMLHttpRequest,早在1999年就被引入了IE瀏覽器,隨后又被其他瀏覽器支持,成為事實上的標準;JavaScript、DOM、CSS則早就是W3C標準。

    2、Ajax:新的Web開發模式
    ???
    在傳統的Web應用程序中,一般都是采取請求→刷新→顯示的模式。即每當用戶通過單擊按鈕或鏈接向服務器發送一個請求時,都由服務器接收請求并處理,處理完畢后服務器將信息發送至瀏覽器進行顯示。而在服務器處理的時間里,瀏覽器處于Loading狀態,顯示為空白和無響應狀態,用戶能做的事情只有等待。
    ???事實上,用戶想獲得的可能僅僅是一件商品的價格信息,但為了這么一個微小的請求卻不得不刷新整個頁面,讓其他所有圖片和數據都被重新運算和下載。這不僅加大了網絡流量,也加大了服務器的處理負擔,造成用戶體驗質量的下降。
    ???⑴傳統的Web開發模式
    ??????傳統的Web開發模式是一種請求→刷新→響應的模式,每個請求由單獨的一個頁面來顯示,發送一個請求就會重新獲得這個頁面,也就是常說的刷新。在這種模式下,每個應用程序由多個頁面組成,每個頁面對應到服務器的一個業務邏輯,或者說是功能塊。而在客戶端顯示的頁面實際只是一個純界面性質的東西。
    ?????

    01.JPG


    ??????從圖1所示可以看出,客戶端的每個頁面都對應服務器端的一個頁面,而應用程序的功能則由各個頁面所組成。每個子功能可能對應到一個或多個頁面,這取決于設計人員的考慮。雖然開發方式靈活多樣,必須將信息對應到一個頁面,由瀏覽器發送這個請求,服務器接受到請求后會將整個頁面作為一個整體提供給用戶,而不管頁面中是否包含冗余的信息。很顯然,這對于用戶來說降低了其訪問速度,他被迫接收了無用的信息。
    ???
    說明:即使Web開發人員為了提高響應速度而將頁面粒度降得很低,也不能很好的解決這個問題。這也是對于客戶端的控制傳統BS架構不如CS的重要原因
    ??????Web頁面中還有大量靜態不變的元素,比如用于整體架構的HTML元素,用于界面表現的圖片、CSS,用于廣告效果的Flash等,他們都是造成打網絡流量的主要因素,因為每請求一次頁面,這些數據都重新加載,雖然瀏覽器的緩存可以解決一些問題,但瀏覽器還是必須從服務器重新獲取數據,從而判斷這些圖片或Flash是否由更新。
    ???⑵基于Ajax的開發模式
    ??????比起傳統的Web開發模式,Ajax則向傳統桌面程序靠攏了許多,一個Web頁已經越來越趨向于一個單獨的應用程序。一個Web頁可以從多個接口獲取數據,并將他們更新在頁面中,所有的工作都是在后臺完成。設計良好的Ajax程序可以告訴用戶瀏覽器正在做什么,讓用戶可以邊等待邊完成其他工作。
    ??????在Ajax中,每個客戶端頁面不一定對應一個服務器端頁面,而可能是由多個服務器端頁面共同協作完成該頁面所需要的功能。
    ??????大多數服務器端的頁面已經不再是界面表現的工具,而是作為提供數據的接口,XMLHttpRequest對象能夠獲取這些頁面的信息,并將其提交給客戶端頁面的Ajax引擎,由Ajax引擎來處理這些數據并表現到頁面,可以用圖2來示意這樣的結構。

    02.JPG


    ??????從圖2所示可以看出,在Ajax中,每個客戶端表現的頁面可以由多個服務器端頁面共同完成,一個服務器端頁面可以為多個客戶端頁面服務。在這樣的模式下,每個服務器端頁面可以將功能的粒度分的很細,至于這些功能怎么組合,則完全是客戶端的事。通過Ajax引擎,客戶端頁面可以根據用戶的需求來調用服務器端相應的頁面,獲得數據并顯示在頁面上。此時許多服務器端頁面已經不能稱之為頁面,應該稱之為接口。
    ???⑶兩種開發模式的比較
    ??????①傳統Web模式的工作流程
    ??????比起Ajax中的異步的概念,在傳統Web模式中是一種同步的概念:用戶必須等待每個請求,當一個請求完成后才能獲得結果,在使用完這些結果后才會發出新的請求。如時序圖3描述

    03.JPG

    ??????
    ??????從圖中可以看到,在傳統的Web開發中,完全是一種請求→刷新→響應的模型,用戶只有等請求完成后才能進行用戶操作,操作完成后才能提交下一個請求,用戶行為和服務器行為是一種同步的關系,需要相互等待,正是這種等待,造成了BS結構客戶端和CS架構客戶端的本質區別。
    ??????②Ajax程序的工作流程
    ??????在基于Ajax的Web程序中,最為重要的特征就是將同步請求轉變為異步請求。這意味著客戶端和服務器端不必再相互等待,而是可以進行一些并發的操作。用戶在發送請求以后可以繼續當前工作,包括瀏覽和提交信息。在服務器響應完成之后,Ajax引擎會將更新的數據顯示給用戶,而用戶則工具響應內容來決定自己下一步的行為,圖4描述了異步Ajax操作的流程。

    04.JPG


    ??????從圖4中可見,在用戶行為和服務器端多了一層Ajax引擎,他負責處理用戶的行為,并轉化為對服務器的請求。同時它接收服務器端返回的信息,經過處理后顯示給用戶。由于Ajax在后臺以異步的方式工作,用戶無需等待服務器的處理,可以進行并發工作,這就在用戶界面層次上更為接近了CS架構的客戶端平臺。
    ??????注意:同步和異步只是兩種開發模式的區別中的一個。Ajax還帶來了性能的提高:因為用戶的行為經過了Ajax引擎的處理,使得客戶端可以只獲取需要的數據。DOM模型使得動態改變頁面的層次結構成為可能,這樣動態獲取的數據可以動態的嵌入到頁面之中,避免了數據重復加載帶來的速度和效率問題。服務器端的組織形式則可以將功能劃分的更細,這樣服務器就可以只為有用的數據進行工作,大大提高了運行效率。

    3、Ajax中的關鍵技術
    ???Ajax是多種技術的一個組合應用,盡管很多技術都已經存在多時并且相當成熟,但卻沒有引起人們足夠重視,對它們的了解一般也都停留在一個很基礎的階段。現在就將對這些技術做一個簡要的介紹,說明他們在Ajax中所起的作用以及如何協同工作的。
    ???⑴JavaScript腳本語言
    ??????頁面設計時常常會加入一些特效,這個是JavaScript的功勞。
    ??????在Ajax中,JavaScript已經從后臺狀態轉移到前臺,發揮著巨大的作用。可以說,JavaScript是Ajax中的黏合劑,它使DOM、XHTML、XML和CSS可以互相協作,并控制他們的行為。
    ??????現在Web程序中基于JavaScript實現很多功能已經具有相當大的實用性了,不再是一些特效或者表單驗證之類的簡單應用了,這些應用所使用的JavaScript技術也是相當專業的。因此,要開發復雜高效的Ajax應用程序,就必須對JavaScript有深入的認識,應該象對待一門新的語言一樣來對待它。
    ???⑵XMLHttpRequest對象
    ??????XMLHttpRequest是一個長期被人忽視的對象,這與它強大的功能不相匹配。借助他可以在網頁的背后和瀏覽器進行異步通訊,而無需刷新整個頁面。XMLHttpRequest對象在JavaScript中創建并使用,客戶端可以僅僅從服務器端獲取它需要的信息;通過DOM和CSS的結合,就可以實現局部刷新的效果;同時還可以通過XMLHttpRequest對象異步提交信息,將用戶的輸入在后臺提交到服務器而無需刷新這個頁面。
    ???⑶可擴展標記語言(XML)
    ??????XML作用很大而且廣為接受,它為跨平臺、跨領域的應用提供了一種通信手段。在Ajax中,它以客戶端和服務器端通信載體的身份出現。按照最初對Ajax的定義,服務器端和客戶端的通信都應該由XML來完成。事實上,使用XML的確可以帶來很多好處,例如數據傳輸非常規范;服務器端和客戶端的開發人員可以很好的協同工作,不用為數據格式的問題而煩惱;可以方便地使用XSLT將XML文檔直接轉換為HTML片斷插入到頁面中。
    ???⑷文檔對象模型(DOM)
    ??????文檔對象模型(DOM)用來表示顯示在瀏覽器上的整個文檔對象及其層次結構。在Ajax中,DOM模型是不可缺少的一部分。使用JavaScript可以訪問文檔中的所有節點,即所有對象。
    ??????通過改變這些對象的屬性,用戶可以控制頁面的局部行為,將動態獲取的數據插入到文檔中,實現局部刷新的目的。用戶還可以利用DOM模型增加和刪除文檔結點,實現界面元素的動態變化。
    ???⑸級聯樣式表技術(CSS)
    ??????CSS最近兩年是熱火朝天,其中一個重要的原因就是使用Web標準進行頁面設計正逐漸成為主流。
    ??????在Ajax中,CSS同樣擔當著界面表現的重任,其重要性甚至超過了傳統的Web程序設計。JavaScript通過XMLHttpRequest對象和服務器進行交互,通常獲取的都是單純的數據,不包括表現元素,而將這些數據插入到文檔本身就是一件非常嚴謹的工作,如果此時還需要使用JavaScript操作標記的屬性來控制其外觀,會使代碼更加復雜而且難以維護,也無法做到使程序開發人員和界面設計人員分工合作,使用CSS則能很好的解決這個問題。CSS知道出現在某個地方的標記應該顯示什么樣式,通過簡單的類屬性和id屬性也很容易決定那些元素應該有怎樣的表現形式。

    4、使用Ajax帶來的問題
    ???⑴用戶瀏覽習慣改變帶來的問題
    ???⑵對搜索引擎的不友好
    ???⑶前進后退按鈕的失效
    ???⑷刷新定位問題
    ???⑸性能問題
    ???⑹開發難度的加大


    評論

    # re: 《征服Ajax-Web 2.0開發技術詳解》--第一章:Ajax概述  回復  更多評論   

    2006-07-05 14:27 by wufeng
    hao

    # re: 《征服Ajax-Web 2.0開發技術詳解》--第一章:Ajax概述  回復  更多評論   

    2006-07-05 14:27 by wufeng
    hao

    # re: 《征服Ajax-Web 2.0開發技術詳解》--第一章:Ajax概述  回復  更多評論   

    2006-10-31 09:04 by billy
    您好!
    我有《征服Ajax-Web 2.0開發技術詳解》書可是沒有源碼,可以發給我一份嗎?
    wangmiao0070@163.com
    謝謝
    主站蜘蛛池模板: yy一级毛片免费视频| 亚洲网站在线观看| 日本免费一区二区三区最新| 色窝窝免费一区二区三区| 最刺激黄a大片免费网站| 一级毛片aaaaaa免费看| 日本不卡免费新一区二区三区| a级在线免费观看| 3344在线看片免费| 精品国产污污免费网站| 日韩精品免费在线视频| 无码国产精品一区二区免费模式| 久别的草原电视剧免费观看| 免费国产成人18在线观看| 无码国产精品一区二区免费3p | 亚洲国产精品综合久久久| 久久亚洲精品国产精品| 亚洲激情黄色小说| 亚洲乱人伦精品图片| 亚洲精品天堂在线观看| 亚洲aⅴ天堂av天堂无码麻豆| 黄色片网站在线免费观看| 一区二区三区免费高清视频| 久久嫩草影院免费看夜色| 你懂的免费在线观看网站| 蜜臀AV免费一区二区三区| 皇色在线视频免费网站| 国产男女猛烈无遮挡免费视频| 亚洲AⅤ无码一区二区三区在线 | 两性刺激生活片免费视频| 免费观看a级毛片| 亚洲日韩中文在线精品第一| 亚洲热妇无码AV在线播放| 麻豆亚洲AV永久无码精品久久| 亚洲AV无码国产精品色| 久久久亚洲精华液精华液精华液| 一道本不卡免费视频| 精品无码国产污污污免费网站 | 美女网站免费福利视频| 免费a级毛片无码av| 国产AV无码专区亚洲Av|