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

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

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

    AjAX核心大綱

    Ajax是一項綜合的技術,Ajax的使用過程,首先是在HTML控件中添加相應的事件觸發屬性,使其具備事件觸發能力;其次是編寫事件處理函數,并在這 個函數中初始化XMLHttpRequest對象,指定響應處理程序,創建http請求,設置必要的http請求頭信息,向服務器發送所創建的http請 求;最后才是創建響應處理函數,在對http請求狀態進行判斷的基礎上作出既定的業務處理事務。
           (一)事件處理函數,按照以下順序處理下列事務:
                    a) 初始化XMLHttpRequest對象;
                     實現代碼如下:
                      if(widow.XMLHttpRequest) {//Mozilla,Safari,.......
                        http_request= new XMLHttpRequest();
                        } else if(window.ActiveXObject) {//IE
                        http_request= new ActiveXObject("Microsoft.XMLHTTP");
                        } else {
                           window.alert("瀏覽器沒有實現XMLHttpRequest 組件對象!");
                        }
                    b) 設置XMLHttpRequest對象的onreadystatechange 屬性,指定服務器返回響應數據時要調用的回調函數, 即指定響應處理函數;
                    實現代碼如下:
                     http_request.onreadystatechange=processRequest;
                    c) 調用XMLHttpRequest對象的open方法,創建http請求;
                      實現代碼如下:
                       http_request.open("GET", "http://www.example.org/some.file", true);
                     d) 調用XMLHttpRequest對象的setRequestHeader等方法,設置必要的http請求頭信息;
                       實現代碼如下:
                        http_request.setRequestHeader("Content-Type",application/x-www-form-urlencoded);
                     e) 調用XMLHttpRequest對象的send方法,發送之前創建的http請求;
                       實現代碼如下:
                       http_request.send(null);
                     f)  根據XMLHttpRequest對象的open方法參數,決定是否等待服務器返回響應數據.
         (二)回調函數(響應處理函數)執行以下事務:
        aa) 判斷http請求的狀態,并作相應處理;
                    bb) 調用XMLHttpRequest對象的responseXML or responseText方法,將服務器返回的響應數據賦予Javascript變量或對象;
                    cc) 使用DOM或其它方式解析服務器返回的響應數據,保存在緩存變量或數組中;
                    dd) 使用DOM解析HTML文檔,定位目標HTML文檔節點;
                    ee)  使用解析完畢的服務器返回的響應數據,更新上一步解答分析HTML文檔節點的屬性值或內容,從而更新HTML文檔頁面內容.


    Ajax控件和類庫簡析

    【導讀】Ajax控件和類庫現在真的太多了,本人對Ajax的觀點:Ajax和服務器端技術毫不相關,DOM模型是Ajax最本質的技術,要學好JavaScript,在使用Ajax控件前理解它們的實現……
     
     
     

    Ajax控件和類庫現在真的太多了,不知不覺中增加了Ajax的神秘性和復雜性,談談本人對Ajax的觀點,希望能讓大家對Ajax有一個本質的認識。

    觀點一:Ajax和服務器端技術毫不相關

    嚴 格的說,與傳統web開發相比,Ajax是完完全全的客戶端技術。由于很多控件封裝了客戶端和服務器端的通信過程,因此很多問題也因通信而起。事實上,不 論何種Ajax技術,服務器端都是返回的一個純文本流,再由客戶端來處理這個文本。這段文本可以是xml格式,也可以是一個Html片段,也可以是一段 JavaScript腳本,或者僅是一個字符串。服務器端僅僅是作為一個數據接口,客戶端使用XMLHttpRequest對象來請求這個頁面,服務器端 在頁面內寫入結果文本,這個過程和普通的web開發沒有任何區別。所不同的只是,客戶端在異步獲取結果后,不是直接顯示在頁面,而是由客戶端的 Javascript腳本處理后再顯示在頁面。至于各種控件所謂的能返回DataSet對象,Date對象,或者其他的數據類型,都是封裝了這個處理過程 的結果。

    觀點二:DOM模型是Ajax最本質的技術

    之所以沒有把XMLHttpRequest列為最本質的技術,因為本 人覺得它實在是太簡單了,它只是可以讓瀏覽器在后臺請求一個頁面,并將其內容交給JavaScript處理。真正的核心應該是:DOM模型,即文檔對象模 型。在DOM模型里,Html標記都被認為是一個對象,例如:div對象,table對象等等。DOM模型就規定了這些對象所具有的屬性、方法和事件。通 過這些性質,可以對一個已經顯示于瀏覽器的頁面進行內容的修改,例如增加節點、修改節點位置,刪除節點等等。而不僅僅是一個innerHTML屬性這么簡 單,雖然這是一個很有用的屬性。

    觀點三:在使用Ajax控件前理解它們的實現

    使用Ajax控件的確可以提高效率,但如果 你空中樓閣般使用控件,那就得不償失了。從一個控件換到另外一個控件又會有一個漫長的學習曲線。所以應該從底層了解其,況且Ajax實在不是什么高深的技 術。其實任何東西的最底層其實都是簡單的,但如果封裝了這些底層的東西,事情會變得復雜和難以理解。以Asp.net為例,它的定制特性可以使得只要在方 法前加上[ajax method]類似這樣的標志就可以稱為一個異步方法,相信這使得Asp.net的Ajax開發顯得更加“高效”或者是“神秘”,而更多的事情則被封裝 了。同樣記住一條,任何對服務器端的請求僅僅是返回純文本,我們不一定要依賴于封裝好的處理過程,而完全可以自己來實現。

    觀點四:學好JavaScript

    在 大多數人看來,JavaScript總不是那么一種正規的語言,隨便copy一段就碰巧能運行,學過c之類的人,一看也能看懂,而且在瀏覽器中常常有腳本 錯誤提示,所以潛意識覺得總不能付之以大任。事實上,要學好Ajax,這就完全是一種錯誤的看法。javascript作為一種腳本語言,其語法的確不是 很嚴格,但并不妨礙其完成諸多復雜的任務,沒有JavaScript,就沒有Ajax。所以本人強烈建議,學Ajax前,一定要好好研究一番 JavaScript,一般來講,如果能順利看懂prototype框架的代碼(如:prototype-1.3.1.js),你的JavaScript 水平就基本過關了。同時對DOM模型也可以算有一個基本的了解。

    觀點五:Ajax點綴:CSS

    用JavaScript控 制CSS其實很簡單,基本上每個DOM對象都有一個style對象,只要把css屬性里的"-"去掉,并讓隨后的字母變為大寫就可以作為屬性使用了,例 如:element.style.backgroundColor="#f00";在css是:選擇符 {background-color:#f00}

    posted on 2007-06-13 09:58 chenguo 閱讀(214) 評論(0)  編輯  收藏 所屬分類: AJAX Dev

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    留言簿

    隨筆分類(1)

    文章分類(52)

    好友 小山的博客

    最新隨筆

    最新評論

    主站蜘蛛池模板: 国产精品亚洲二区在线观看| 免费高清在线爱做视频| 亚洲乱亚洲乱妇无码麻豆| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产男女爽爽爽免费视频| 亚洲国产午夜中文字幕精品黄网站| 男男黄GAY片免费网站WWW| 又大又黄又粗又爽的免费视频 | AV片在线观看免费| 亚洲a∨国产av综合av下载| 日本午夜免费福利视频| 黄色a级片免费看| 亚洲另类激情综合偷自拍图| 国内少妇偷人精品视频免费| 亚洲最新视频在线观看| 91黑丝国产线观看免费| 亚洲AV无码专区在线观看成人| 国产成人免费福利网站| 中文字幕无码亚洲欧洲日韩| 真实乱视频国产免费观看| 免费国产黄网站在线观看动图| 国产国拍亚洲精品福利| 男人j进入女人j内部免费网站 | 亚洲精品无码成人片久久不卡| 男人的天堂亚洲一区二区三区| 亚洲AV无码一区二区三区性色 | 免费特级黄毛片在线成人观看| 日本高清不卡中文字幕免费| 亚洲色成人中文字幕网站| 亚洲一级毛片免费看| MM1313亚洲国产精品| 久久久久久久尹人综合网亚洲 | 一色屋成人免费精品网站| 怡红院亚洲红怡院在线观看| 亚洲免费观看视频| 成人免费视频小说| 久草免费手机视频| 青草久久精品亚洲综合专区| 亚洲av无码成h人动漫无遮挡 | 亚洲人成网7777777国产| 黄页网站免费观看|