emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評(píng)論 :: 2 Trackbacks

          我的評(píng)論

          共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));
          }
          }
          不贊成自己實(shí)現(xiàn)排序
          re: URLParser(入圍賽250分真題) emu 2005-12-10 00:52  
          有一個(gè)現(xiàn)成的更復(fù)雜一點(diǎn)點(diǎn)的轉(zhuǎn)換規(guī)則啊,試試javascript里面的escape/unescape:

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

          我的解答前面貼過了 java版本的escape和unescape函數(shù)
          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));
            }
          }

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

          這兩個(gè)是樣本本身的錯(cuò)誤。 escape后的數(shù)據(jù)是絕對(duì)不會(huì)出現(xiàn) “%--” 和“%4X”這樣的字符串的。因?yàn)椤?”作為轉(zhuǎn)義符,它不能用來表示“%”自己。你的parse結(jié)果吧它當(dāng)成自己,其實(shí)也只是掩蓋了問題而已。

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

          為什么你只留名字不留聯(lián)系方式啊,搞的好像地下黨單線聯(lián)系一樣。
          這道題當(dāng)時(shí)沒有得分,恐怕不只是沒有排序,還有這個(gè)空格的問題。
          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];

          同出一轍呵呵
          沒有優(yōu)化。其實(shí)可以直接定位到最后一次出現(xiàn)的“H”或者“E”的位置開始計(jì)算的。
          昨天跟萬常華大哥抱怨Sarissa在我的IE6上面連測試都無法全部通過,今天過來跟了一下代碼,原來是XP+SP2和WIN2003+SP1升級(jí)的IE6的bug,同時(shí)找了兩種方法來回避這個(gè)bug。詳見

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

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

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

          用正則做要比我的做法好一點(diǎn),需要匹配復(fù)雜一點(diǎn)的規(guī)則的時(shí)候很容易改。

          我不用正則是因?yàn)橹皬膩頉]有在java里面用過正則,當(dāng)時(shí)趕時(shí)間什么熟悉用什么,不可能臨時(shí)抱佛腳去查手冊。

          此外題目中沒有明確,filter的條件能否重復(fù)定義,如果重復(fù)了是按照“與”邏輯還是“或”邏輯處理。(“For a file to pass through the filter, it must satisfy every equality check in filterInfo”暗示了這種情況下也應(yīng)該按照與邏輯)所以在這組數(shù)據(jù)下:
          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"};

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


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

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

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

          如果后臺(tái)用GBK編碼而前臺(tái)用UTF-8的話,可以在直接后臺(tái)轉(zhuǎn)碼,如果要在前臺(tái)轉(zhuǎn)碼就要用到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>

          這樣編碼后發(fā)送出去,后臺(tái)就可以按gbk編碼來接收了。


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

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

          我們可以這樣測試它:

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

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

          當(dāng)我還在做java的時(shí)候,我會(huì)覺得這是多么理所當(dāng)然的要求啊,可惜從java世界走出來的時(shí)候才發(fā)現(xiàn),java并不總是最好的答案。
          re: 百度就知道吹 emu 2005-11-25 18:15  
          >>每個(gè)搜索引擎的服務(wù)器更新都需要一個(gè)周期的
          這個(gè)大家都清楚。搜索引擎的服務(wù)質(zhì)量也和這個(gè)周期直接相關(guān),我只是碰巧發(fā)現(xiàn)百度的周期比yahoo的長,因此得到的結(jié)論是yahoo的服務(wù)至少不比百度差,因此百度廣告片上號(hào)稱的中國人更懂中文服務(wù)更好其實(shí)是吹的,這個(gè)邏輯有錯(cuò)嗎?
          只有在瀏覽器中運(yùn)行腳本的時(shí)候才能訪問瀏覽器對(duì)象。
          有的時(shí)候我們想在非瀏覽器的上下文中測試一個(gè)函數(shù)的功能,可以用腳本模擬一個(gè)navigator、window或者document對(duì)象并賦相應(yīng)的屬性和模擬的方法進(jìn)去。
          re: [AJAX筆記]XMLHttpRequest emu 2005-11-24 09:21  
          >>只有XMLHttpRequst是傳統(tǒng)web應(yīng)用中不曾使用過得
          其實(shí)也是個(gè)很傳統(tǒng)的技術(shù)了。
          公司不做java的,DWR這樣的java后臺(tái)框架也確實(shí)支撐不起我們這樣龐大的后臺(tái)壓力。
          對(duì)熟悉xslt的開發(fā)人員來說當(dāng)然是如此了。可是要把人家全部拉過來培訓(xùn)xslt阻力也不小啊,只能指望下面的項(xiàng)目能不能用上。
          太忙了 emu 2005-11-22 13:23  
          早就想做做些研究,在項(xiàng)目中多實(shí)踐一些新東西,和大家多分享一些東西,可是實(shí)在忙。上周基本上都是晚上11點(diǎn)后下的班,星期天好一點(diǎn),6點(diǎn)多就回去了。疲于奔命,很多事情都做不了。有心想替公司挖幾個(gè)高手過來幫忙,可惜高手們都請不動(dòng)。
          我以前的同事江江說,在老家已經(jīng)承包了一座山頭,將來放雞去。
          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日消息:

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

          BJUG

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

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

          也就是js頁面中Uy函數(shù)的返回。想這樣子把各個(gè)參數(shù)順序倒來倒取,函數(shù)調(diào)來調(diào)去的事情js頁面中做了不計(jì)其數(shù),最終事件是怎么處理的實(shí)在不得而知。gmail那個(gè)23歲的項(xiàng)目經(jīng)理,佩服佩服!

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

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

          >> 數(shù)據(jù)比較復(fù)雜,需要用XML的結(jié)構(gòu)化方式來表示
          數(shù)據(jù)結(jié)構(gòu)復(fù)雜的時(shí)候xml當(dāng)然適用,但是自己設(shè)計(jì)的專用的文本表達(dá)方式很容易做的比它還更有針對(duì)性,更高效。我們推薦適用xml來表現(xiàn),是因?yàn)樗ㄓ茫诟鞣N場合下都更容易獲得支持,而不只是因?yàn)樗谋磉_(dá)能力更強(qiáng)。

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

          >>與系統(tǒng)其他API或者其他系統(tǒng)交互,作為一種數(shù)據(jù)中轉(zhuǎn)中介。
          如果沒記錯(cuò)的話我們是在講ajax吧,或者eamoi在講的是ajax+soap 或 ajax+xmlrpc?

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

          在我看來eamoi并不很明白xml的優(yōu)勢所在。

          我認(rèn)為xml被廣泛的用來作為各種系統(tǒng)之間的標(biāo)準(zhǔn)借口,是因?yàn)樗且环N簡潔的自描述的標(biāo)記語言,能夠用純文本流的形式來表現(xiàn)各種復(fù)雜的數(shù)據(jù)和他們之間的層次關(guān)系,并且在各種平臺(tái)下都很容易構(gòu)造和分析。我推行真正的AJAX而不是AJAH,是因?yàn)檫@樣前后臺(tái)可以在XML這樣一個(gè)標(biāo)準(zhǔn)上面很容易的建立借口,溝通數(shù)據(jù),提高開發(fā)效率。同時(shí)xml很容易被檢驗(yàn),我們也提高了可測試性因而提高了開發(fā)質(zhì)量;規(guī)范的xml數(shù)據(jù)源很容易被重用,我們往往也可以提高代碼重用度;而且xml數(shù)據(jù)可以被瀏覽器非常好的cache,在重用xml數(shù)據(jù)源的時(shí)候我們也可以有效的降低帶寬上的代價(jià)。這些在我最近的AJAX開發(fā)實(shí)踐中都得到了很好的體現(xiàn)。

          用dom形式解析使用xml數(shù)據(jù)的一個(gè)難點(diǎn)在于跨瀏覽器的實(shí)現(xiàn)(http://sourceforge.net/projects/goog-ajaxslt/ 可能是google對(duì)此一個(gè)響亮的回答呵呵),我認(rèn)為跨瀏覽器是gmail使用AJAH的一個(gè)主要考慮,但是不幸的是gmail居然成為了AJAX的經(jīng)典案例,大家也就以為AJAX本來就應(yīng)該用AJAH的形式來體現(xiàn)了。
          共9頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 
          主站蜘蛛池模板: 万年县| 于都县| 宜昌市| 保亭| 安西县| 甘孜县| 武宁县| 玛曲县| 嘉荫县| 衡东县| 弥渡县| 喀喇| 武强县| 安平县| 桃园市| 山阴县| 连南| 盐亭县| 怀集县| 郓城县| 章丘市| 榆社县| 绥阳县| 青州市| 固原市| 荆门市| 外汇| 长宁县| 台湾省| 博白县| 凌源市| 定结县| 藁城市| 泉州市| 湟源县| 大兴区| 黄浦区| 新巴尔虎左旗| 海淀区| 桃园市| 忻州市|