emu in blogjava

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

          我的評論

          共9頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 
          re: Crop(入圍賽250分真題) emu 2005-12-12 11:35  
          小飛俠的解法好。這是emu 的很笨的解法:
          public class Crop
          {
          public String[] crop(String[] image, String[] crops) {
          String crop = crops[0];
          String[] t = crop.split(" ");
          int r1= Integer.parseInt(t[0],10);
          int c1= Integer.parseInt(t[1],10);
          int r2= Integer.parseInt(t[2],10);
          int c2= Integer.parseInt(t[3],10);
          if(r2>(image.length-1)) r2=(image.length-1);
          if(c2>(image[0].length()-1)) c2=(image[0].length()-1);
          if( r1>0 || c1>0 || r2<(image.length-1) || c2<(image[0].length()-1) ){
          String[] tmpImage = new String[r2-r1+1];
          for(int i=r1;i<=r2;i++)
          tmpImage[i-r1] = image[i].substring(c1,c2+1);
          if(crops.length>1){
          String[] tmpCrops = new String[crops.length-1];
          for(int i=1;i<crops.length;i++) tmpCrops[i-1] = crops[i];
          return crop(tmpImage,tmpCrops);
          }else{
          return tmpImage;
          }
          }else
          return image;
          }
          public static void main(String[] args)
          {
          Crop c = new Crop();
          String[] result = c.crop(
          new String[]{".........","X.XXXXXXX","....X....","........."},
          new String[]{"1 0 2 8", "0 0 1 1"}
          );
          System.out.println(java.util.Arrays.asList(result));

          result = c.crop(
          new String[]{"X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X."},
          new String[]{"0 0 1 14", "0 0 1 14", "0 0 1 14"}
          );
          System.out.println(java.util.Arrays.asList(result));

          result = c.crop(
          new String[]{".X..X.X.XX.", "..X..X...X.", "X......X..X", ".X....X...X", "..XXXX.X.X.", "XXX..XXX..X"},
          new String[]{"0 0 0 0"}
          );
          System.out.println(java.util.Arrays.asList(result));

          result = c.crop(
          new String[]{".X..X.X.XX.", "..X..X...X.", "X......X..X", ".X....X...X", "..XXXX.X.X.", "XXX..XXX..X"},
          new String[]{"1 0 5 9", "0 1 4 8", "0 0 3 5"}
          );
          System.out.println(java.util.Arrays.asList(result));
          }
          }
          不贊成自己實現排序
          re: URLParser(入圍賽250分真題) emu 2005-12-10 00:52  
          有一個現成的更復雜一點點的轉換規則啊,試試javascript里面的escape/unescape:

          %u5165%u56F4%u8D5B250%u5206%u771F%u9898 《==》 入圍賽250分真題

          我的解答前面貼過了 java版本的escape和unescape函數
          re: URLParser(入圍賽250分真題) emu 2005-12-09 18:31  
          試試看你的程序比我的慢幾倍?

          import java.util.regex.Matcher;
          import java.util.regex.Pattern;

          public class URLParser {

            public String drekar(String url) {
              if (null == url)
                return "";

              Pattern p = Pattern.compile("%[0-9A-Fa-f]{2}");
              Matcher m = p.matcher(url);
              boolean found = m.find();
              if (found) {
                StringBuffer sb = new StringBuffer();
                    do {
                      String temp = m.group(0).substring(1);
                      char a = (char)Integer.parseInt(temp, 16);
                        m.appendReplacement(sb, ""+a);
                        found = m.find();
                    } while (found);
                    m.appendTail(sb);
                    return sb.toString();
              } else
                return url;
            }
              public String emu(String url){
                  StringBuffer tmp = new StringBuffer();
                  tmp.ensureCapacity(url.length());
                  int lastPos = 0, pos = 0;
                  char ch;
                  while (lastPos < url.length()) {
                      pos = url.indexOf("%", lastPos);
                      if (pos == lastPos) {
              ch = (char) Integer.parseInt(url.substring(pos + 1, pos + 3),16);
              tmp.append(ch);
              lastPos = pos + 3;
                      } else {
                          if (pos == -1) {
                              tmp.append(url.substring(lastPos));
                              lastPos = url.length();
                          } else {
                              tmp.append(url.substring(lastPos, pos));
                              lastPos = pos;
                          }
                      }
                  }
                  return tmp.toString();
              }

            public static void main(String[] args) {
              String url = "a%20b%20c%20d%20e%20f%20g%20h%20i%20j%20k%20l%20m%20n%20o%20p%20q%20r%20s%20t%20u%20v%20w%20x%20y%20z%20A%20B%20C%20D%20E%20F%20G%20H%20I%20J%20K%20L%20M%20N%20O%20P%20Q%20R%20S%20T%20U%20V%20W%20X%20Y%20Z%20" ;
              URLParser up = new URLParser();
              long t = System.currentTimeMillis();
              for(int i=0;i<1000;i++)
              up.drekar(url);
              System.out.println("drekar time used "+(System.currentTimeMillis()-t));
              t = System.currentTimeMillis();
              for(int i=0;i<1000;i++)
              up.emu(url);
              System.out.println("emu time used "+(System.currentTimeMillis()-t));
            }
          }

          正則如果不能直接進行全局replace的話,還沒有自己實現替換來的快。
          re: URLParser(入圍賽250分真題) emu 2005-12-09 16:34  
          >這幾個測試樣本會出錯:
          >"--%--%48%65%6C"
          >"%4X%65%6C"

          這兩個是樣本本身的錯誤。 escape后的數據是絕對不會出現 “%--” 和“%4X”這樣的字符串的。因為“%”作為轉義符,它不能用來表示“%”自己。你的parse結果吧它當成自己,其實也只是掩蓋了問題而已。

          你的代碼里面  Public String parse(String url) { 第一個字母P怎么大寫了?

          為什么你只留名字不留聯系方式啊,搞的好像地下黨單線聯系一樣。
          這道題當時沒有得分,恐怕不只是沒有排序,還有這個空格的問題。
          re: SongFilter (入圍賽250真題) emu 2005-12-09 14:47  
          else if (!filters[j].equals(temp[1]))
          return new String[0]; // conflicting filters

          跟我的

          else if (!filter[j].equals(filterInfo[i].substring(filterPrefix[j].length())))
          return new String[0];

          同出一轍呵呵
          沒有優化。其實可以直接定位到最后一次出現的“H”或者“E”的位置開始計算的。
          re: 見識了一下ajax高手風范 emu 2005-12-09 11:28  
          昨天跟萬常華大哥抱怨Sarissa在我的IE6上面連測試都無法全部通過,今天過來跟了一下代碼,原來是XP+SP2和WIN2003+SP1升級的IE6的bug,同時找了兩種方法來回避這個bug。詳見

          http://www.aygfsteel.com/emu/articles/23101.html
          Arrays.sort(stAr); 不是排序是什么?
          re: SongFilter (入圍賽250真題) emu 2005-12-09 10:53  
          呵呵,250分的小題目也要小心在意啊。上次我記得入圍的全部都是三道全對的。

          測了一下,在這個條件下:
          String [] myFilter = {"genre=rock", "album=ii", "album=ii"};

          你的與邏輯居然返回空!你寫完程序不測功能的嗎?
          re: SongFilter (入圍賽250真題) emu 2005-12-08 20:55  
          不錯。開始編譯通不過嚇了我一跳,原來你用中文空格替換掉制表符了。

          用正則做要比我的做法好一點,需要匹配復雜一點的規則的時候很容易改。

          我不用正則是因為之前從來沒有在java里面用過正則,當時趕時間什么熟悉用什么,不可能臨時抱佛腳去查手冊。

          此外題目中沒有明確,filter的條件能否重復定義,如果重復了是按照“與”邏輯還是“或”邏輯處理。(“For a file to pass through the filter, it must satisfy every equality check in filterInfo”暗示了這種情況下也應該按照與邏輯)所以在這組數據下:
          collection = new String[] {"jazz-joe pass-virtuoso-cherokee",
          "rock-led zeppelin-ii-lemon song",
          "country-dwight yoakam-long way home-things change",
          "metal-iron maiden-powerslave-aces high",
          "pop-supremes-more hits-ask any girl",
          "rock-faith no more-angel dust-rv",
          "jazz-chuck mangione-feels so good-feels so good",
          "rock-van halen-ii-spanish fly"};

          filterInfo = new String[] {"genre=rock", "album=ii", "album=angel dust"};

          我的答案是空數組(按照與邏輯),而你的卻返回
          rock-faith no more-angel dust-rv,匹配最后出現的相同條件。


          想想,用正則的話這個與或邏輯如何寫?

          re: 見識了一下ajax高手風范 emu 2005-12-08 12:09  
          不認識噢,只是經常聽說。我也沒加入uuzone,也沒有裝uu通。看介紹頁面上不少說通話不收費的嘛。
          不過這種強行安裝控件、彈出廣告、不能方便禁止和卸載的做法,也太跟不上時代了。
          呵呵,對自己有信心,就不會理解成自己現眼了。不過這樣的模擬題對沒看過以前的題目的人有很強的誤導性,都以為1000分就這么好拿,到時就傻眼了。懷疑google想多蒙些人來捧場。
          此外這道題我第一次做也是做錯了的(現眼了),在系統自動測試的時候才發現,原來位置是從0到n,不是從1到n。所以題目容易也要仔細讀題。上次東亞大賽的時候有一道題就是沒有搞清楚輸出結果是要排序的丟了分。
          re: 泥娃娃 emu 2005-12-07 09:16  
          就是啊,看歌詞沒有什么很凄涼的字句,就是唱出來的時候覺著。
          就是啊,這次中國錦標賽的模擬題比上次東亞大賽的模擬題差的太遠了,完全沒有挑戰性。
          re: AJAX案例研究之Gmail emu 2005-12-06 18:45  
          驚奇的發現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.


          沒有找到在線閱讀的連接。書中用的代碼可以在這里下載到。看了一下都是些pl文件,算了,不想特地去玩perl。

          相關的還有兩本:《Gmail Power Tips》《Using Gmail to... 》
          老問題了,最簡單的方法是,全部escape后發送。取回后unescape,絕對沒有編碼問題。如果需要在服務器端escape/unescape可以看看
          http://www.aygfsteel.com/emu/articles/4773.html
          這個帖子的初衷就是為了解決xml的問題的。上次google東亞大賽還考了一道類似的題目,我直接從這上面copy的代碼交上去的呵呵。如果用其他后臺語言就要自己寫了。

          如果后臺用GBK編碼而前臺用UTF-8的話,可以在直接后臺轉碼,如果要在前臺轉碼就要用到vbscript了:
          <SCRIPT LANGUAGE="vbScript">
          <!--
          Function URLEncoding(vstrIn)
          strReturn = ""
          For i = 1 To Len(vstrIn)
          ThisChr = Mid(vStrIn,i,1)
          If Abs(Asc(ThisChr)) < &HFF Then
          strReturn = strReturn & ThisChr
          Else
          innerCode = Asc(ThisChr)
          If innerCode < 0 Then
          innerCode = innerCode + &H10000
          End If
          Hight8 = (innerCode And &HFF00)\ &HFF
          Low8 = innerCode And &HFF
          strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
          End If
          Next
          URLEncoding = strReturn
          End Function
          //-->
          </SCRIPT>

          這樣編碼后發送出去,后臺就可以按gbk編碼來接收了。


          不會吧,看來我得趕快去加入這個項目了
          re: AJAX案例研究之google suggest emu 2005-12-02 17:50  
          起先懷疑是結果太多,對選擇幫助不大,就干脆不顯示了。但是試了下 usa都可以返回,那sex就真的是被屏蔽了。fuck和XXX也一樣被屏蔽了。我們知道google的文化是don't be evil,過濾不健康詞匯也很應該。
          這要看測試范圍了,單一個document每什么好測的,要模擬的話 var document=new Object(); 就可以了。要測試它的相關屬性和方法就要用腳本構造出來。比如我們有一個函數要修改document的title屬性:

          function changeTitle(){
          // 這是被測試的函數,其中使用了document對象的title屬性
          document.title += " -- emu";
          }

          我們可以這樣測試它:

          var document=new Object();//模擬document對象
          document.title = "試一試";//模擬title屬性
          changeTitle();
          if(document.title=="試一試 -- emu")
          WScript.Echo("函數changeTitle測試通過") ;
          else
          WScript.Echo("函數changeTitle測試失敗") ;

          注意到這里用了WScript.Echo輸出,直接在cscript或者wscript腳本宿主中運行就可以了。如果用rhino的話就print。
          re: StrutsTestCase 試用手記 emu 2005-12-02 14:03  
          我不玩java很久了,生疏了。也不知道你用的是StrutsTestCase 的哪個版本,恐怕幫不上什么忙。
          玩開源代碼庫,自己調試能力要先過關。你去下個strutstestcase的sourcecode包下來,從 servletunit.struts.MockStrutsTestCase 的第231跟下去看看怎么回事吧。
          blogjava就很適合寫code啊。
          re: 公告 emu 2005-12-02 12:32  
          當時剛好解了google code jam的幾道模擬題傳上去,突然發現一個bug,要去改又改不了,干著急。
          re: DiskDefrag(賽前模擬題) emu 2005-11-30 22:30  
          呵呵,你跟我前面兩次解此題走的是同樣的方向,其實都忽略了一點:題目要求的是最少移動的次數,不是具體的移動方案。
          失敗兩次后我開始認為,具體的移動方案可能性增長太快,不要說盲目搜索,就是很優化的搜索策略也經不住增長。其實我們需要的是找到一個通用的算法可以直接推算出來需要移動的最少次數,并且從數學上保證這個次數的方案的存在。我第三次的嘗試走的就是這個方向,可惜也沒有成功。
          如果求具體的移動的方案,這也不失為一道非常好的練習題。盲目搜索沒有多大意義的,我已經試過A*了,另外有朋友說他也試過遺傳算法,你有什么其他的想法也不妨再試試看。
          re: AJAX案例研究之google suggest emu 2005-11-30 22:13  
          hl和js都是送給后臺CGI的參數,從傳送的值上多少可以猜出來一點消息:
          hl=en 應該是提示語言的種類了,en一般代表英語,不知google suggest打算支持哪些語言。
          js=true 有可能是返回值的風格。在代碼中hardcode了,但是將來有可能做擴展支持真正的xml。
          qu=AJAX 這個就是查詢的字符串了
          其實這些都不重要,服務器用什么軟件或者用什么語言寫也不重要。我們只是一窺google的實現方式而已,真的自己要做,難的并不在這些地方。
          re: AJAX案例研究之google suggest emu 2005-11-30 13:35  
          估計google earth可不是什么容易啃的骨頭噢。
          很多人都把DHTML當成是JAVASCRIPT,把window、document、body當成javascript語言提供的內嵌對象。其實不但rhino,其他javascript引擎本身也都不支持瀏覽器對象的。玩過cscript/wscript嗎?
          >>All you need is a java servlet engine

          當我還在做java的時候,我會覺得這是多么理所當然的要求啊,可惜從java世界走出來的時候才發現,java并不總是最好的答案。
          re: 百度就知道吹 emu 2005-11-25 18:15  
          >>每個搜索引擎的服務器更新都需要一個周期的
          這個大家都清楚。搜索引擎的服務質量也和這個周期直接相關,我只是碰巧發現百度的周期比yahoo的長,因此得到的結論是yahoo的服務至少不比百度差,因此百度廣告片上號稱的中國人更懂中文服務更好其實是吹的,這個邏輯有錯嗎?
          只有在瀏覽器中運行腳本的時候才能訪問瀏覽器對象。
          有的時候我們想在非瀏覽器的上下文中測試一個函數的功能,可以用腳本模擬一個navigator、window或者document對象并賦相應的屬性和模擬的方法進去。
          re: [AJAX筆記]XMLHttpRequest emu 2005-11-24 09:21  
          >>只有XMLHttpRequst是傳統web應用中不曾使用過得
          其實也是個很傳統的技術了。
          公司不做java的,DWR這樣的java后臺框架也確實支撐不起我們這樣龐大的后臺壓力。
          對熟悉xslt的開發人員來說當然是如此了。可是要把人家全部拉過來培訓xslt阻力也不小啊,只能指望下面的項目能不能用上。
          太忙了 emu 2005-11-22 13:23  
          早就想做做些研究,在項目中多實踐一些新東西,和大家多分享一些東西,可是實在忙。上周基本上都是晚上11點后下的班,星期天好一點,6點多就回去了。疲于奔命,很多事情都做不了。有心想替公司挖幾個高手過來幫忙,可惜高手們都請不動。
          re: 職業規劃-Career plan emu 2005-11-18 19:54  
          我以前的同事江江說,在老家已經承包了一座山頭,將來放雞去。
          re: 雅虎變了 emu 2005-11-18 19:49  
          雅虎變簡潔了,yahoo可還是很花哨呢:
          http://www.yahoo.com/
          王俊已出院 emu 2005-11-18 09:14  
          http://befresh.bjug.org/content/view/31/13/

          出院了!
          作者: BJUG
          2005-11-11
          11月9日消息:

          王俊今日出院了!!!讓我們恭喜他吧!
          他仍將在家中修養幾個月。
          祝愿王俊早日歸來,早日完全康復!加油,王俊!

          BJUG

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

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

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

          還好,這些再稀奇古怪,其實跟AJAX的關系都不大了。個人認為這不是值得提倡的做事方式。
          其實google suggest是個跟好玩更值得研究的案例,代碼也比gmail短的多,就一根ac.js,用工具重排一下版就很好分析了。不過真的是忙不過來了,這幾天都在趕工,希望下周有時間。
          http://qzone-search.qq.com/ 是我上個月做的一個ajax應用的小實驗,可以供你參考一下,不過這幾天也正在改,而且我現在有個改變開發方式的新想法,不知道下一步有沒有精力用更好的方式做。
          re: 你的Blog值多少錢? emu 2005-11-10 13:05  
          我csdn上的blog值 $564.54,可是blogjava上的卻是$0。老高的http://www.aygfsteel.com/sean/ 也是$0,blogjava上前10名只有林大哥你的不是$0,肯定是走了后門的。
          re: 關于Javascript內存泄漏 emu 2005-11-10 13:00  
          日歷控件可以選擇的太多了,一個不行就換一個咯。javascript應該是不存在“字符串內存分配”的錯誤的,也不存在真正像c那樣的“內存泄漏”問題。
          工作太忙,先醞釀幾天吧。也想抽時間多看看google。
          昨天午飯前看了一眼googlesuggest的代碼,其實比gmail還要來的簡單,代碼很短,使用起來卻非常舒服,但是沒有時間自信分析。昨天下午開了一個下午的會,前天是服務器宕掉,項目越拖越厲害,獎金岌岌可危了。
          AJAX并不只是網頁設計師的事,整個開發模式變換了,所有的人都應該具備相關的知識。如果美工和腳本開發工作沒有分開的話,網頁設計師js應該比較強才能應付。

          》》尤其要懂得通過JS操作DOM來更新改變文檔
          要么就是AJAH,要么就是用JS操作DOM,這是現在AJAX應用的一個誤區了,如果每個使用AJAX的頁面都使用特定的js來操作dom的話開發量未免大了一些,維護起來也不好做。
          我是自己做了一套簡單的腳本來自動把xml解析到html頁面中間去的,使用一些類似jsp的標記就搞定了,有jsp/asp經驗的人很容易可以把頁面改成AJAX的。有興趣可以查看一下 http://qzone-search.qq.com/web/tag/tt_search.html 的頁面原碼。
          google的ajaxslt是一個更通用更權威的做法,但是前臺開發人員最好要熟悉xslt。正在猶豫以后的項目是否改用xslt。
          re: Gmail 使用的AJAX技術研究 emu 2005-11-09 10:54  
          》》最簡單的方法就是給每個Brower寫一個基本的實現
          別的不說,維護那么多版本的代碼就夠頭疼了。其實盡可能的使用一些通用的腳本,一些瀏覽器特有的功能用自己做的函數包裝起來再調用,在包裝的函數里面判斷用特定的瀏覽器實現,這樣就要好作的多了。
          跨瀏覽器還有一個頭疼的問題是不同瀏覽器有不同的bug呵呵。
          re: 走向而立之年 emu 2005-11-09 09:25  
          候捷老師有一短話給我觸動很大:一門技術做的足夠精,即使市場上它只有一個職位,這個職位也是屬于你的。
          我想,熱愛技術的不應該那么浮躁,好程序員從來都不缺乏機會的。但是像這期《程序員》上面周哄煒大哥講的,有些程序員特別憤青,罵環境、罵老板……論壇上大家都在討論哪里活干的少錢拿的多。這樣的心態怎么能做好技術呢?牢騷太盛防腸斷,風物長宜放眼量,其實很多高手恰恰就是在那些環境下面磨練出來的。
          前天獵頭又在問我有沒有興趣跳槽,昨天又有一個公司問我對他們的新職位有沒有興趣呵呵。即使不跳槽,這樣的信息對自己保持心態也是很有力的支撐。
          re: 百度就知道吹 emu 2005-11-08 16:21  
          不過現在看來更新速度還可以,雖然給yahoo比下去了。
          我的問題在于,我做的AJAX應用還不夠好,甚至無法跨瀏覽器。在AJAH如此倍受推崇的今天要跳出來賣自己唱反調,是要有點額外的底氣的。如果手里的項目到時有時間可以重構的話,我看看能不能用google-ajaxslt重做一次表現層。
          我補充一下吧 emu 2005-11-08 13:34  
          7.5.3、如何在使用XML還是普通文本間權衡

          >> 數據比較復雜,需要用XML的結構化方式來表示
          數據結構復雜的時候xml當然適用,但是自己設計的專用的文本表達方式很容易做的比它還更有針對性,更高效。我們推薦適用xml來表現,是因為它更通用,在各種場合下都更容易獲得支持,而不只是因為他的表達能力更強。

          >>不用靠攏帶寬和處理效率支出。
          這是不可以泛泛而論的。不知eamoi為何認為xml更占用帶寬和cpu呢。其實有分析過它占了多少嗎,在哪些情形下xml會成為瓶頸呢?

          >>與系統其他API或者其他系統交互,作為一種數據中轉中介。
          如果沒記錯的話我們是在講ajax吧,或者eamoi在講的是ajax+soap 或 ajax+xmlrpc?

          >>需要特定各式的輸出視圖而文本無法表示的
          呵呵,xml也是文本啊,沒有什么東西是xml能表現二其他文本形式無法表現的。如果要進行針對性的設計的話很容易為不同的應用場合量身定做一套更好用更高效的文本表達形式,缺點在于不通用。

          在我看來eamoi并不很明白xml的優勢所在。

          我認為xml被廣泛的用來作為各種系統之間的標準借口,是因為它是一種簡潔的自描述的標記語言,能夠用純文本流的形式來表現各種復雜的數據和他們之間的層次關系,并且在各種平臺下都很容易構造和分析。我推行真正的AJAX而不是AJAH,是因為這樣前后臺可以在XML這樣一個標準上面很容易的建立借口,溝通數據,提高開發效率。同時xml很容易被檢驗,我們也提高了可測試性因而提高了開發質量;規范的xml數據源很容易被重用,我們往往也可以提高代碼重用度;而且xml數據可以被瀏覽器非常好的cache,在重用xml數據源的時候我們也可以有效的降低帶寬上的代價。這些在我最近的AJAX開發實踐中都得到了很好的體現。

          用dom形式解析使用xml數據的一個難點在于跨瀏覽器的實現(http://sourceforge.net/projects/goog-ajaxslt/ 可能是google對此一個響亮的回答呵呵),我認為跨瀏覽器是gmail使用AJAH的一個主要考慮,但是不幸的是gmail居然成為了AJAX的經典案例,大家也就以為AJAX本來就應該用AJAH的形式來體現了。
          共9頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 
          主站蜘蛛池模板: 淳安县| 神池县| 延吉市| 阿坝| 阿合奇县| 洪江市| 虹口区| 阿瓦提县| 获嘉县| 梅河口市| 阿拉尔市| 新民市| 铅山县| 青川县| 石泉县| 乌恰县| 津南区| 庆安县| 巴林右旗| 含山县| 抚远县| 留坝县| 惠州市| 龙南县| 元江| 云阳县| 原阳县| 河曲县| 沅陵县| 平陆县| 临夏市| 湖南省| 定襄县| 兴安县| 深水埗区| 确山县| 扎鲁特旗| 定南县| 荣成市| 丰都县| 柞水县|