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

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

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

    emu in blogjava

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

    項目開發告一段落,喘口氣,總結一下。

    1 AJAX還是AJAH
    * AJAX的很多經典應用其實都是利用xmlhttp空間訪問后臺程序,后臺程序返回腳本用eval回調或者返回簡單數據的方式來開發。這樣的開發模式的好處是設計簡單輕巧,對熟悉dhtml的開發者來說上手會比較塊,跨瀏覽器問題也容易解決,做簡單的應用也夠用。gmail,google suggest都是用這種方式。但是在我看來gmail已經吧AJAH應用到極限了,更復雜的數據結構用簡單數據和回調方式來組織就開始有點力不從心了。

    * 前AJAX的一種傳統做法是后臺返回完整的xml文件后用腳本(利用控件)解析xml后操作頁面的dom節點來動態生成頁面的一部分。這樣作的優點是可以充分利用xml的強大表達能力傳輸各種數據結構,缺點是頁面的dom操作效率不高,而且IE在dom操作的API上bug多多。之所以叫“前AJAX”,因為我們在AJAX這個名詞出現前已經這樣做了很多年了。

    * AJAX另一種傳統做法是后臺返回完整的xml文件后用腳本(利用控件)解析xml后生成html代碼再灌回頁面的層中。這樣的做法回避了頁面dom操作的一些問題,在生成的內容比較多的時候利用一些字符串計算的優化技巧(主要是數組和正則的應用)可以相當高效的生成頁面。在我看來這是未來的發展趨勢。

    我現在的項目主要采用的是第三種方式,結合第二種。我使用的是自己的一個小巧的框架,模擬jsp的語法來生成html代碼,但是依賴于瀏覽器的xml解析API,因此難以跨瀏覽器。google的開源項目ajaxslt提供了一個純js的xslt解決方式,功能更強大,可以在頁面中局部的應用xslt解析xml生成html或者其他形式的數據,但是帶來了xslt這個技術門檻。sf上的ZK似乎也不錯,但是帶來的是xul這個技術門檻,同時后臺被綁定在了J2EE服務器上面。

    2 CACHE
    如果使用xmlhttp控件,在發起http請求的時候IE會包辦cache策略,很多時候更新了數據卻無法獲得更新后的數據。一開始試圖用傳統方式在URL后面加隨機數來強制更新,但是IE仍然距不發出新的請求。
    一個解決方法是在后臺寫expires: 0或者其他的禁止前臺cache的頭,但是這樣在數據沒有更新的時候又會帶來不必要的服務器壓力、響應延遲和帶寬浪費。
    一個稍微好一點的解決方法是,前臺在提交數據以后,需要強制更新數據的時候:

    xmlhttp.setRequestHeader("If-Modified-Since","0");

    3 系統錯誤: -1072896748。
    用xmlhttp接收到數據的時候經常是用xmldom.loadXML(xmlhttp.responseXML.xml)來判斷返回的數據的正確性,但是如果后臺送過來不正確的xml的時候有時回觸發-1072896748系統錯誤。這是因為xmlhttp.responseXML已經沒有解析到東西了,我們還試圖訪問它的xml屬性而觸發的。
    解決的方法是在使用responseXML.xml 或者 responseText的時候要做try/catch:
    try{var tmp = xmlhttp.responseXML.xml}catch(ex){err=true;}
    有些人喜歡catch的時候判斷 exception.description=="系統錯誤: -1072896748。" , 如果客戶端不是簡體中文版的系統的時候就判斷不到了。其實這個地方只要有異常,都必須走異常處理流程了,不用區分的那么仔細。

    posted on 2005-11-22 10:24 emu 閱讀(8706) 評論(18)  編輯  收藏

    評論

    # re: 做了兩個月ajax,總結一些小經驗 2005-11-22 11:01 eamoi
    emu好樣的。加油,希望看到后續更深入的文章。  回復  更多評論
      

    # 太忙了 2005-11-22 13:23 emu
    早就想做做些研究,在項目中多實踐一些新東西,和大家多分享一些東西,可是實在忙。上周基本上都是晚上11點后下的班,星期天好一點,6點多就回去了。疲于奔命,很多事情都做不了。有心想替公司挖幾個高手過來幫忙,可惜高手們都請不動。  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-11-22 14:45 huangyi
    我覺得用xsl把xml轉成html要方便許多 尤其xml復雜的時候  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-11-22 16:30 emu
    對熟悉xslt的開發人員來說當然是如此了。可是要把人家全部拉過來培訓xslt阻力也不小啊,只能指望下面的項目能不能用上。  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-11-23 23:01 BlueO2
    公司既然不是做ajax產品框架,而是做應用,為什么不應用現有的框架呢?比如dwr  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-11-24 09:17 emu
    公司不做java的,DWR這樣的java后臺框架也確實支撐不起我們這樣龐大的后臺壓力。  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-11-28 11:43 Henri
    Writing AJAX web applications is definitly not a low cost job. And ZK(http://zk1.sourceforge.net) is aimed at making developing AJAX web applications as easy as developing a traditional desktop windows applications. There is no need to learn javascript and DOM and XMLHttpRequest. ZK hides all these away. XUL in that meaning is actually an easy to lean markup language to design rich GUI pages and you write all your control and data biding codes in pure java.

    However, ZK is expected to release next version which will support xhtml tags directly to enable those majority of html web page designers to write AJAX web applications.

    ZK is a java servlet-based presentation engine. All you need is a java servlet engine (e.g. Tomcat, Jetty, etc.). As for JavaEE, we do support it but you don't need the full set. ZK is made as thin as possible a presentation engine and it is only for presentation only. Therefore, you can use it with Spring, Strut, Hibernate, Jdbc, etc... without limitation.

    Here is the Live demo, maybe you want to give it a try. (http://www.potix.com/zkdemo/userguide)

    Henri  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-11-28 22:10 emu
    >>All you need is a java servlet engine

    當我還在做java的時候,我會覺得這是多么理所當然的要求啊,可惜從java世界走出來的時候才發現,java并不總是最好的答案。  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-12-02 19:24 chenqj
    ajaxslt只支持ie6.0以上的版本,這點比較郁悶  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2005-12-03 15:43 emu
    不會吧,看來我得趕快去加入這個項目了  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2006-01-11 10:24 呵呵
    >>當我還在做java的時候,我會覺得這是多么理所當然的要求啊,可惜從java世界走出來的時候才發現,java并不總是最好的答案

    有的時候答案好不好不是關鍵,關鍵是別人要這個答案 :)  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2006-05-25 20:10 pc
    http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=1106514212512 java線程的缺陷(上)
    http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=200644231255 Java反編譯的研究
    http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=20064614542 Java實現ftp功能(源程序)  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2006-05-26 09:52 交流交流
    有沒有考慮用JSON格式來傳遞數據?我想,在web應用中JSON比較高效些。  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2006-05-30 10:55 老鼠
    呵呵:)

    謝謝emu的經驗共享:)

    我想把您這篇文章轉走,可以嗎?

    如果您有疑問,請在此留言或給我E-MAIL,謝謝:)

    cammy.sun@hotmail.com  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2006-07-13 09:18 unifly
    可以考慮下JSON;
    干嗎不用好的框架;
    建議看看Ajax in action;
    http://www-128.ibm.com/developerworks/cn/java/j-ajax2/;
      回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2006-07-15 14:39 emu
    呵呵,有用框架的高手、寫框架的高手和不用框架的高手的。
    json我通常直接通過script來引用,而不是通過xmlhttp(request)來獲取,這樣需要做的事情更少。這個話題上和meizz有過一些討論,不過這是另一個話題了,一篇日志中不可能什么都講的。  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2009-05-21 17:07 藏獒
    ajax,高級東西啊,我HTML都用不好會的哦.  回復  更多評論
      

    # re: 做了兩個月ajax,總結一些小經驗 2009-05-21 17:07 魔獸世界私服
    學習了....  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲好看的理论片电影| 亚洲美女高清一区二区三区| 亚洲国产精品特色大片观看完整版| 午夜在线免费视频 | 中文字幕乱理片免费完整的| 亚洲JIZZJIZZ中国少妇中文| 一级做α爱过程免费视频| 亚洲色婷婷综合开心网| av片在线观看永久免费| 亚洲区小说区图片区QVOD| 两个人看的www免费视频中文 | 亚洲成综合人影院在院播放| aⅴ免费在线观看| 国产成人精品日本亚洲专| 成人黄动漫画免费网站视频 | 亚洲av无码国产精品夜色午夜| 怡红院免费全部视频在线视频| 亚洲大片在线观看| 99国产精品永久免费视频| 亚洲va在线va天堂成人| 国产精品国产免费无码专区不卡| fc2免费人成在线视频| 国产亚洲精久久久久久无码| 久久精品无码专区免费青青| 中文字幕亚洲综合久久综合| 免费人成在线观看视频播放| 两个人看的www免费视频| 亚洲性一级理论片在线观看| 四虎影院免费视频| eeuss影院免费直达入口| 亚洲高清无在码在线无弹窗| 免费看香港一级毛片| 国产成人精品免费大全| 亚洲色av性色在线观无码| 在线观看免费亚洲| 久久精品国产大片免费观看| 日韩亚洲人成在线| 国产亚洲综合网曝门系列| 成人毛片免费网站| a级在线观看免费| 亚洲妇女熟BBW|