emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

          現在提起AJAX,大家都立刻會想起Gmail、gogle map這幾個經典的AJAX應用。Gmail的優良表現我們都看過了,那么它的實現你研究過了嗎?它怎么在幾個不同的瀏覽器上可以一致的實現xml異步調用的呢?一起來看看吧。

          首先,登錄gmail以后我們會先進入這個頁面:

          <html>
          <head>
              
          <meta content="text/html; charset=UTF-8" http-equiv="content-type">
              
          <title>Gmailtitle>
              
          <link rel="alternate" type="application/atom+xml" title="Gmail Atom Feed" href="feed/atom" />
              
          <script src="?view=page&name=browser&ver=c0d3d44c64799453">script>
          head>
          <noscript>
              
          <font face=arial>
                  應啟用 JavaScript,才能在標準視圖中使用 Gmail。然而,JavaScript 似乎已被禁用,要么就是您的瀏覽器不支持 JavaScript。要使用標準視圖,請更改您的瀏覽器選項以啟用 JavaScript,然后
          <href="">重試a>。<p>要使用 Gmail 的基本 HTML 視圖(不需要 JavaScript),<href="?ui=html&zy=n">請單擊此處a>。p>
              
          font>
          noscript>
          <script>

          script>
          html>

          這是主框架網頁兼瀏覽器檢測頁。如果瀏覽器通過了檢測(支持javascript、cookie和xml控件)則在頁面上寫一段框架代碼

          要注意到的是google在這里耍了一個小花招,那個叫做main的框架頁面里面看來沒有多少東西,好東東都在那個叫js的框架里面呢。

          我們接著把這個js框架拉出來看看:

          整整1500多行的javascript代碼!

          這個頁面有240多k,幾乎全都是javascript代碼。有興趣分析的兄弟姐妹們請點這里下載

          其實其中大部分都是老生常談的js代碼了,不過我們可以一窺google的編碼風格:盡可能壓縮信息量,變量名能用一個字母的絕不用兩個,函數名一概都是兩個字母的,函數內的會車是沒有的,縮進也是沒有的。雖然代碼沒有特地加密,但是如此處理一番之后也就沒什么可讀性了。還好系統的關鍵字是不能縮水的,順著xml控件的名字我們可以揪出來跟AJAX異步加載數據相關的幾個關鍵函數:

           

          function vb(){var a=null;if(r){var b=fG?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP";try{a=new ActiveXObject(b)}catch(c){q(c);alert("您需要啟用活動腳本功能和activeX 控件。")}}else{a=new XMLHttpRequest();if(!a){;alert("此瀏覽器不支持 XMLHttpRequest。")}}return a}
          //emu注釋 構造XML控件并返回給調用者

          function ot(a,b){;try{a.send(b)}catch(c){q(c);if(c.number==-2146697208){alert("請確保 Internet Explorer 的”語言”設置部分不是空白。")}}}
          //emu注釋 執行發送數據操作 a:XML控件 b:要發送的數據

          function Wf(a,b,c){Da(3);b=Ld(b);Hf(a,b,c)}
          //emu注釋 a:XML控件 b:訪問的url c:回調函數 Da是驗證參數長度的函數 
          //
          Ld是一個url轉換加工的函數,主要處理url自帶的CGI參數和翻頁的頁數等

          function Hf(a,b,c){Da(3);a.onreadystatechange=c;a.open("GET",b,true);ot(a,null)}
          //emu注釋 不發送數據直接請求資源 a:XML控件 b:訪問的url c:回調函數

          function nt(a,b,c,d){Da(4);a.onreadystatechange=d;a.open("POST",b,true);ot(a,c)}
          //emu注釋 發送數據并請求資源 a:XML控件 b:訪問的url c:要發送的數據 d:回調函數

           

          基本上就這么多了,很失望吧,沒有什么新鮮的東西。發送http請求之后它又怎么處理返回的xml的呢?事實上他沒有處理。他所處理的僅僅是最基本responseText,而cgi則直接生成js腳本到客戶端回調(用eval運行),或者生成文本信息。這就是為什么gmail可以輕松跨域幾個瀏覽器了。

          作為最受推崇的一個AJAX應用,卻幾乎沒有用到xml。像這樣用xml控件來收發文本信息后在頁面上展現的技術,基本上就是現在AJAX最流行的應用方式了,不過這樣也能叫AJAX嗎?我寧可就叫它AJ,最多叫AJAH。

          今天先到這,下回再過來分析另一個完全不同的AJAX應用吧。大家周末愉快!

          posted on 2005-11-04 14:36 emu 閱讀(13369) 評論(35)  編輯  收藏

          評論

          # re: Gmail 使用的AJAX技術研究 2005-11-06 00:05 大胃
          嗯,不錯,emu不愧為JS牛人。換作是我,估計早就頭大了。

          不過依我的一點拙見,Google自己好像沒吹捧AJAX,倒是很多來自其他媒體的評論和開發人員從Gmail等應用看到了AJAX這個不算新鮮的技術原來可以做出這樣優秀的嵌在瀏覽器里面的客戶端。

          退一萬步講,如果Gmail能夠憑借一些并不花哨和前衛的技術,實現如此讓人眼前一亮的功能,并且讓整個開發社區重新認識AJAX,我想它背后一定有些不簡單的東西在支撐著。
            回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-06 15:03 jiniboy
          有詳細的沒有啊  回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-06 21:23 todogoingmm
          有高手在,我也懶惰一盤。順便問問
          1)Msxml2.XMLHTTP和Microsoft.XMLHTTP有什么不同?
          2)MSXML.DOMDocument和Msxml2.DOMDocument和Microsoft.XMLDOM有什么不同?
          3)相信每組的功能都差不多。在使用的時候有什么經驗嗎?  回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-07 09:21 emu
          呵呵我是技術理想主義者,sean是實用主義者。

          不欣賞gmail的ajax理由是沒有充分利用到xml帶來的好處,后臺必須為前臺的每一個請求度身定做一個返回的(超)文本或者腳本,因此也在后臺帶來了混合編程的問題。

          如果實用純xml來做ajax,后臺開發人員可以非常大的被解放出來,更多的關注業務而不是表現,我認為這是ajax帶來的另一個方面的好處。有興趣可以看看
          http://qzone-search.qq.com/web/tag/tt_search.html
          這個頁面就是接收標準的xml數據來顯示的。比如頁面中間的“最近更新”部分來自于http://qzone-search.qq.com/client/tag/newtags.xml ,而搜索功能的實現則依賴于ajax加載。而tencent公司正在開發中的tm版qzone干脆用ajax技術解析rss數據來生成頁面,這樣后臺開發人員只需要做一套提供rss訂閱的cgi就可以了。

          但是在gmail這樣對跨瀏覽器要求比較高的場合上,這是很必然的選擇,跨瀏覽器的xml解析始終是一個麻煩的東東,我現在也還搞不定。打算過一段有時間了再好好研究,實在不行就用純javascript寫一個簡單一點的xml解析器,跨平臺行還更好一些呵呵。

          jiniboy : 本來打算hack掉gmail的腳本來分析gamil的來往數據的,這段時間忙沒有辦法去做,過陣子吧。至于更詳細的技術實現,我認為沒有進一步探究的價值了,我認識的網友有超過一打都可以實現得出來。

          todogoingmm :沒有仔細研究過其中的差別,其實網上的資料很多了。我認為主要差別是不同瀏覽器支持的不同版本的xml控件,但是我們盡量向下兼容,使用最通用的功能。  回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-08 21:48 Joyway
          如果做過跨Brower的JS代碼的話,尤其是要兼容一些低版本的Brower的話(象是Netscape4,5,IE4,5都要支持的),就會明白什么叫做痛苦了。其實最簡單的方法就是給每個Brower寫一個基本的實現,再在程序里調用這些基本的現實來做一些高級的功能。
          是不是大公司都會提這么變態的要求的?  回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-09 10:54 emu
          》》最簡單的方法就是給每個Brower寫一個基本的實現
          別的不說,維護那么多版本的代碼就夠頭疼了。其實盡可能的使用一些通用的腳本,一些瀏覽器特有的功能用自己做的函數包裝起來再調用,在包裝的函數里面判斷用特定的瀏覽器實現,這樣就要好作的多了。
          跨瀏覽器還有一個頭疼的問題是不同瀏覽器有不同的bug呵呵。  回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-11 01:08 emu
          花了兩個多鐘頭跟gmail的代碼之后還是輸給它了。
          原來以為gmail的代碼是沒有特地加密的,但是很意外的發現在顯示的主窗口(名字叫v1的那個)中,頁面元素的id居然是隨機生成的,也就是說其實是加了密的。而且所有的鏈接和按鈕都無法跟蹤到他們的點擊事件,這簡直是咄咄怪事!雖然在js頁面中可以看到他很迂回的使用了onclick等事件,但是看起來中些事件似乎根本沒有定義到具體的鏈接上,而是直接定義到框架上了??蚣艿膁ocument對象定義了onclick事件:

          function(c){return vo(D(a),c,b)}

          也就是js頁面中Uy函數的返回。想這樣子把各個參數順序倒來倒取,函數調來調去的事情js頁面中做了不計其數,最終事件是怎么處理的實在不得而知。gmail那個23歲的項目經理,佩服佩服!

          還好,這些再稀奇古怪,其實跟AJAX的關系都不大了。個人認為這不是值得提倡的做事方式。  回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-22 17:44 盜泉
          “其實其中大部分都是老生常談的js代碼了,不過我們可以一窺google的編碼風格:盡可能壓縮信息量,變量名能用一個字母的絕不用兩個,函數名一概都是兩個字母的,函數內的會車是沒有的,縮進也是沒有的。雖然代碼沒有特地加密,但是如此處理一番之后也就沒什么可讀性了?!?

          其實那是js的混淆處理,并不是 google 的編碼風格。  回復  更多評論
            

          # re: Gmail 使用的AJAX技術研究 2005-11-22 19:15 Daniel.Liu
          其實最主要是原始的代碼可能和大家開發用的一樣.
          經過測試無誤后,再用一個代碼轉換工具,把變量名替換掉.
          把空格回車刪除掉,變成了最后的代碼了.
          為的就是把CORE做到最小,而且JS的加載大小應該是有限制的.
          GOOGLE那種做法也就是為了盡可能減小其核心代碼的長度.
          畢竟對于IE的JAVA解析環境來說,多余的空格,多長的變量名是沒有意義的.  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2005-12-06 18:45 emu
          驚奇的發現Wiley Publishing
          出版過一本書就叫《Hacking Gmail》。

          目錄可以看到:

          http://as.wiley.com/WileyCDA/WileyTitle/productCd-076459611X,descCd-tableOfContents.html

          PART I: CUSTOMIZING GMAIL.
          Chapter 1. Desktop Integration.

          Chapter 2. Integrating Your Existing Mail.

          Chapter 3. Gmail Power Tips.

          PART II: THE GMAIL API.

          Chapter 4. Skinning Gmail.

          Chapter 5. How Gmail Works.

          Chapter 6. Gmail and Greasemonkey.

          Chapter 7. Gmail Libraries.

          Chapter 8. Checking for Mail.

          Chapter 9. Reading Mail.

          Chapter 10. Sending Mail.

          PART III: USING YOUR API.

          Chapter 11. Dealing with Lables.

          Chapter 12. Addressing Adresses.

          Chapter 13. Building aqn API from the HTML-Only Version of Gmail.

          Chapter 14. Exporting Your Mail.

          Chapter 15. Using Gmail To....

          Chapter 16. Using GmailFS.

          Appendix: Long Code Listings.


          沒有找到在線閱讀的連接。書中用的代碼可以在這里下載到??戳艘幌露际切﹑l文件,算了,不想特地去玩perl。

          相關的還有兩本:《Gmail Power Tips》《Using Gmail to... 》  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-01-06 20:07 zhenxi
          emu所說的那個javascript的解析器好像已經有人做出來了,就是xparse.js
          www.x2design.net就是用prototype.js和xparse.js來撐起來的  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-01-06 20:18 cm4ever
          那些js代碼明擺著是用自動生成工具生成的,了解概念就行了,去讀就有點齪了。  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-01-25 09:47 duduwolf
          不是google的代碼風格,那是一種js混淆器生成的代碼樣式
          gmail是在AJAX這個名詞誕生以前就有的東西,包括suggest和google map,google用xmlhttp和eval(responseText)的方式就是為了達到最實用效率最高的目的,如果gmap也用xml去解析地圖信息,我想會變得很慢很低效的  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-01-25 17:26 emu
          終于盼到duduwolf來留言了,榮幸榮幸。
          我在你的blog上留過言,加過你的msn,幾次想要聯系你都未能如愿,能否留個有效的聯系方式?有不少問題想和你討論。
          我認為肯定是某種js加工工具,但不是混淆器。再簡單的混淆器出來的代碼也是一塌糊涂的,google用的工具的加工目的僅僅是壓縮文件尺寸,并沒有刻意的降低可讀性。
          google的幾個應用針對性很強,用AJaH方式顯然是非常合適的。我一直想強調的是,我們做系統不可以照抄google的方式,要多在可維護性和通用性上想問題,不要放任系統變的太專用、耦合變的太強、軟件變的太“硬”。  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-02-20 16:44 foxgst◎gmail.com
          把表現層和業務層分開是必要的嗎?……如果有人可以在概念上區分得很清楚,而且可以做代碼自動生成工具生成混合的代碼,快速高效而又商業化的應用,挺好,沒必要失望。我也只用我覺得好的Ajax部分,規范快速高效是最終目的。

          以前很希望看到google在Web頁面中采用xhtml的標準,一直沒有看到,依然是html,甚至連DOCTYPE都沒有,我想這只能說明軟件流水生產線在google的普遍存在。

          充分利用技術的好處,而不僅僅是選擇“好”技術來用。  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-03-13 20:52 netunit
          不錯,關注,正想做個網站,而應用其ajax

          http://www.netunit.com.cn  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-04-06 15:37 finaland
          我看到 csdn 上老發廣告的這個
          http://mail.ymailserver.com/webmailgmail/mail.jsp?auth=a_l_VFZ-J1m7

          看了代碼,好像完全和 gmail 一樣的

          這是怎么回事?

            回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-04-06 15:43 finaland
          剛才沒說清楚

          http://mail.ymailserver.com/default.jsp

          用戶名 demo
          密碼 demo

          版本選擇 google gmail 版

          我看了好幾個函數的命名都是一致的

          難道他們拿到了gmail 的源碼?  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-04-06 17:31 emu
          我看了幾個函數的命名和google的風格都相差甚遠,而且google也不是用jsp做的,應該和google的源碼沒有多大關系。  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-04-06 19:23 finaland
          看了你的回復又過去仔細看了一下

          1、易郵主框架頁面,也就是 '登錄gmail以后我們會先進入' 的這個頁面

          有這樣一段

          <noscript><font face=arial>應啟用 。。。。。 中間略 </font></p></noscript>

          和你的分析中的第一段代碼基本上完全一樣(多了移動部分處理,和現在gmail 版本完全一樣),包括連 Gmail 的大名都在里面

          2、js 腳本框架加載方式和你分析的gmail 的方式完全一樣,都是 document.write 一個 frameset 到主頁面中,然后通過frame onload 事件控制轉向 js 腳本頁面

          這種結構一樣無可厚非,但是這些 frameset 和 子frame 的名字都一樣,連控制轉向的函數名都一樣,有點不正常吧

          3、上面兩點都不是重點,我們看看那個 1500 行的 javascript 代碼

          function Wv(){var a=null;if(Bl){var b=Bm?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP";try{a=new ActiveXObject(b)}catch(c){Gu(c);Xv("\u60a8\u9700\u8981\u542f\u7528\u6d3b\u52a8\u811a\u672c\u529f\u80fd\u548cactiveX \u63a7\u4ef6\u3002")}}else{a=new XMLHttpRequest();if(!a){;Xv("\u6b64\u6d4f\u89c8\u5668\u4e0d\u652f\u6301 XMLHttpRequest\u3002")}if(a){qM(a)}}return a}

          這個對應你分析的第一個函數 function vb

          function bw(a,b){;try{a.send(b)}catch(c){Gu(c);if(c.number==-2146697208){C("\u8bf7\u786e\u4fdd Internet Explorer \u7684\u201d\u8bed\u8a00...\u201d\u8bbe\u7f6e\u90e8\u5206\u4e0d\u662f\u7a7a\u767d\u3002")}}}

          對應 function ot(a,b)

          \u7684\u201d\u8bed\u8a00 這些東西很明顯是自己定義的漢字編碼,通過 函數 C 解碼,然后 alert 出來

          其他的不看了


          確實,ajax 在 數據發送的細節上,全世界都只能用 XMLHTTP,全世界的代碼都一樣,但是易郵的這個和 gmail 的框架調用、函數組織、數據傳遞,連呼吸都一樣,不是很奇怪嗎?

          還有,易郵的1500代碼最后,也沒忘了這句:
          </body>
          <!-- Copyright 2002-2006 Google Inc. -->
          </html>

          最低限度,很明顯參考了 gmail 的代碼

          我們都知道,web 應用上 js 腳本是藏不住的,不然大家都看不到這個案例分析了,但是,這個 1500 行的代碼,做了這么復雜的混淆,根本沒辦法分析清楚(本人不才,就著兩個字的函數名硬看了一天,沒有任何頭緒),服務器端的邏輯數據如何組織,如何傳遞,如何響應,如何調用,是沒辦法從 這個 js 上推斷出來的。


          最后,有個問題想請教,這也是我找到這篇文章的初衷。
          gmail 的頁面根據你的分析,應該是由兩個 frame 組成的,上面的 frame 負責顯示,高度 100%,下面的 frame 是js 腳本解析層,高度為0

          我的問題是,在用戶切換應用的時候(比如從 inbox 切換到 all mail),上面那個用來顯示的 frame 是否進行了刷新?

          我看了頁面 url,傳到服務端的參數不同,頁面源代碼也不同,都是從服務端讀取的當前應用的邏輯數據,從這個角度看,整個頁面都被重寫過,這個 frame 應該進行了刷新

          但是左側的 菜單 還有 那幾個 clipBox 一直保持著,感覺不像進行了刷新

          我自己試著做了一個簡單的結構,發現如果上面的 frame 進行刷新,左側菜單會被重繪,頁面會出現非常短暫的白屏,雖然很短,但是非常破壞用戶體驗,和gmail 的效果差很遠

          正在百思不得其解的時候,居然無意中看到了這個 易郵 ,當場就驚呆了
          在下才疏學淺,而且很磋,有怪癖,這個問題一直弄不明白,好幾天都沒睡好,下風頓首,望指點一二

          留言寫了這么長,非常不禮貌,如果不吝賜教的話,我的郵箱

          jackie.lander AT gmail.com  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-04-07 10:15 emu
          最近實在太忙,天天加班,沒有辦法仔細研究這個問題。
          Gmain的Frame確實是刷新的,只是刷新比較快而已,刷新過程也有短暫的白屏,但是在頁面左側表現不明顯。
          這其實也不神秘,查看一下源代碼就一目了然了。因為頁面本身的顯示內容都是用腳本生成的,我們切換到新的url上面的時候其實只是切換了新的數據,什么都不顯示,要由其它框架頁面解析完數據后生成新的html再瞬間替換到頁面上,因此出現白屏的時間非常短。

          隨手做了個簡單的例子,請點擊這里下載。  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-04-07 12:18 finaland
          謝謝  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-05-14 03:47 killjanuary
          垃圾MS的IE瀏覽器有兩個不同版本的XMLHTTPrequest

          所以建立request并定義為false后,要先測試你的browers是否為MS版本1,else測試是否為MS版本2。然后再檢測request是否還為false,如還是false,OK,AJAX下課,花花腸子玩不了了。 否則:開始AJAX干活  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-05-17 22:44 易郵YMailserver
          易郵YMailserver讓您公司擁有和網易163,126,GOOGLE Gmail一樣的郵件系統
          歡迎訪問介紹: http://www1.yiii.net/app/shop/view.jsp?Information_Id=I00000002&templateName=shop.view.gI2

          網易最新 "D計劃" 版(DIV+JS 全新客戶端軟件模式) 試用
          進入體驗:

          http://mail.ymailserver.com/webmaildplan/login_submit.jsp?username=demo&hostname=ymailserver.com&password=demo&doLogin=true&redirectStr=Index

          網易163, 126極速版(DIV+JS) 試用
          http://mail.ymailserver.com/webmail126/login_submit.jsp?username=demo&hostname=ymailserver.com&password=demo&doLogin=true&redirectStr=Index

          Google Gmail郵局版(AJAX) 試用
          http://mail.ymailserver.com/webmailgmail/login_submit.jsp?username=demo&hostname=ymailserver.com&password=demo&doLogin=true&redirectStr=Index
            回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-05-25 20:10 pc
          http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=1106514125748 Java 線程/內存模型的缺陷和增強
          http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=1106513213315 Java基本教學:線程入門
          http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=1106513213240 Java學習:線程池的簡單構建  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-07-10 16:01 zz
          這些早注意到了,頁面上有大量的js腳本要運行,其速度之慢,令人無法忍受,google的各種做法都是為了提供足夠的腳本運行速度.  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-08-13 22:24 SimenKing
          emu的文章很不錯。

          我也很早就翻過Gmail的js代碼了,做web的都有個癖好就是看到好東西都要查看源碼 :)
          因此,我有Gmail的某個版本的代碼(未擾碼處理的)。直到后來...發現被擾碼處理了 :(

          其實gmail中Ajax用的很少,也許新集成的Gtalk應該是大量應用,不過那份代碼是很早以前的(甚至在html版本出來之前),
          Gmail里大量的操作是用iframe完成的,明顯的例子:你點某封郵件標題查看內容的時候,瀏覽器有個明顯的加載頁面過程。

          如果emu有興趣我可以提供給你研究。

          我現在什么都做,從后臺到css,從服務器架設到日常維護。
          有興趣可以來我這里討論技術問題 http://www.mipang.com/groups/tiandi/
          網站上有大量Ajax實現。歡迎交流 PHP/JS/Ajax/CSS  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-08-13 22:38 SimenKing
          我覺得 google calendar 也是個很不錯的東西,閱讀代碼可以學到很多js技巧。雖然是擾碼過的,關鍵代碼還是能看懂是在做什么。  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-08-30 14:49 moses
          版主你好。我現在在做一個項目。用ajax做。覺得你們的技術很好。想跟你們聯系下。聊聊??纯从袥]有合作的機會。
          我的電話13817260896我姓郭  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-09-25 19:40 SimenKing
          剛建了blog

          http://nukq.malmam.com

          Ajax PHP方面的技術心得分享  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-10-18 13:37 Sparkwang
          gmail在請求返回js而不用xml是有道理的,使用json攜帶數據返回客戶端的做法效率是最高的。樓主認為“像這樣用xml控件來收發文本信息后在頁面上展現的技術,基本上就是現在AJAX最流行的應用方式了”,實際的情況未必如此,這個說法是不準確的。  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2006-11-24 22:22 Pengo
          樓上說得很有道理.并不是必須使用xml才算Ajax  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2007-03-29 13:59 Gino.F.Huo
          這個是不同的瀏覽器(和不同的瀏覽器版本的問題)  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2008-08-04 10:24 村蟈蟈
          ?  回復  更多評論
            

          # re: AJAX案例研究之Gmail 2009-12-29 17:23 nbby
          @大胃
          好深刻的理解啊。  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 江西省| 山丹县| 武宁县| 晋州市| 凤冈县| 金塔县| 井冈山市| 遂川县| 瑞丽市| 嘉善县| 阳新县| 桃源县| 浠水县| 梁河县| 班戈县| 鲁甸县| 榕江县| 云南省| 淅川县| 沅陵县| 偏关县| 星子县| 乐亭县| 蓝田县| 合川市| 巴彦淖尔市| 景洪市| 靖安县| 岗巴县| 寻乌县| 南和县| 胶州市| 陵川县| 竹溪县| 视频| 江西省| 宣汉县| 阿坝县| 噶尔县| 阿图什市| 关岭|