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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

        EasyJWeb中已經有了一個Ajax遠程腳本調用引擎,這是很早的事情了。但由于一直存在一些性能問題,所以一直沒有給大家推薦,直到最近m3發布,通過對Ajax遠程腳本調用引擎進行完善,把處理復雜對象的返回進行的簡化,通過在以前的幾個應用中進行了測試,發現性能一下子提升了至少10倍以上,并且運行比較穩定,因此在這里給大家推薦推薦。

      Ajax遠程腳本調用示例演示:http://easyjweb.demo.easyjf.com/ajax/ajax.html

      完整的示例應用及源碼下載:ftp://ftp1.easyjf.com/easyjweb/demo/ajax.war
      

      EasyJWeb是一個提供了對Ajax遠程腳本調用功能支持的框架,他幫助你完成Ajax遠程腳本調用中的大多數細節工作,你基本上不用寫額外的代碼就能非常輕松的使用javascript來調用服務器的業務組件的相關方法,這些業務組件可以是任何java對象,比如EJB、EasyJWeb容器中的Bean、Spring容器中的Bean等等。使用EasyJWeb的Ajax遠程腳本調用,需要下面的幾個步驟:
      1、 在EasyJWeb容器或子容器中配置供客戶端腳本調用的業務組件。比如,在easyjweb的配置文件中像下面的方式配置Bean:

    <bean name="PersonService" class="easyjweb.demo.service.impl.PersonServiceImpl" />

         PersonServiceImpl的代碼如下:

    package easyjweb.demo.service.impl;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    public class PersonServiceImpl {
    /**
    * 得到服務器當前時間
    * @return
    */
    public Date getTime() {
    return new Date();
    }
    }

    2、 在EasyJWeb的配置文件,配置要把容器中的哪些業務組件及具體方法暴露給客戶端進行遠程腳本調用。內容大致如下:

    <ajax>
    <services allowName="*">
    <service name="PersonService" />
    </services>
    </ajax>

    上面的ajax配置信息表示暴PersonService的所有public方法供客戶端使用javascript調用。
    只需要上面的兩步,就完成了服務器端的相關工作。服務器端不再需要寫任何Action,EasyJWeb會自動處理客戶端發送來的Ajax遠程腳本調用,下面我們進一步看看客戶端的程序。
    3、為了能夠在客戶端頁面中直接使用javascript進行對PersonService業務組件的Ajax遠程腳本調用,我們需要在頁面中引入下面三個js。

    <script src="ejf/easyajax/prototype.js" type="text/javascript"></script>
    <script src="ejf/easyajax/engine.js" type="text/javascript"></script>
    <script src="ejf/easyajax/PersonService.js" type="text/javascript"></script>

      其中第一個ejf/easyajax/prototype.js引入的是prototype.js,這是一個javascript的基礎庫,提供很多對基礎javascript類的擴展,并提供了ajax相關的實用組件,EasyJWeb的遠程腳本調用引擎是基于prototype.js構建的。
      第二個ejf/easyajax/engine.js是EasyJWeb的遠程腳本調用支持引擎,他負責處理Ajax遠程腳本調用的相關的細節,如參數處理、回調處理等,同時提供了一些實用工具如EasyAjaxUtil等供客戶端使用。
      第三個ejf/easyajax/PersonService.js是PersonService對象,PersonService.js的內容是根據服務器端的容器中名為PersonService的Bean及EasyJWeb的ajax配置信息生成的。只要引入了PersonService.js,我們就可以直接在頁面中調用PersonService的相關方法了。
      上面的三個js文件都是服務器端動態生成的,需要我們在web.xml文件把所有/ejf/*的URL都交由EasyJWeb來處理。因此,需要在Web.xml的url中增加如下的映射內容:

    <servlet-mapping>
    <servlet-name>easyjf</servlet-name>
    <url-pattern>/ejf/*</url-pattern><!--所有/ejf/開頭的url都由easyjweb來處理-->
    </servlet-mapping>


    4、 在頁面中使用javascript調用服務器的相關方法

    <script>
    function showServerTime(){
    PersonService.getTime(showTime) ;
    function showTime(ret){
    alert("服務器端時間: "+ret) ;
    }
    }
    </script>

      怎么樣,一切都是如此簡單,不需要寫任何PersonService的代碼,不需要寫任何Action,只需要進行非常簡單的配置,就能讓我們服務器上的業務組件支持Ajax遠程腳本調用。

      by easyjf 大峽

    posted on 2008-01-03 13:22 簡易java框架 閱讀(1892) 評論(11)  編輯  收藏

    FeedBack:
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-03 13:55 隔葉黃鶯
    何以就斷定性能提升10倍了呢?  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-03 13:59 xuruchao
    和DWR沒有什么區別吧?  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-03 14:01 金魚
    我只能根據網速和服務器的性能判斷它是否快.  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-03 14:07 簡易java框架
    @隔葉黃鶯
    這個據說是根據測試得來的,放在以前很多基于EasyJWeb的Ajax應用上試了,確實提高了,這里的10倍應該是一個概數。  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-03 14:12 忠厚中國
    在和以前遺留系統上比較的話可能要快很多,這樣只證明一點,以前作的太垃圾了!  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-03 14:15 簡易java框架
    @忠厚中國
    你把現在這個跟dwr比較一下就知道了。:-)
    另外跟以前的比,只是一些算法改進了一下,其它的都沒變。這個快也不是絕對,只是針對某些部份。就好比,Guice說他比Spring快100倍,你能說Spring就垃圾嗎?  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎[未登錄] 2008-01-03 14:15 天一
    @xuruchao
      從應用的角度來說,區別不大,都非常簡單、直觀。但從實現的角度來說,區別還是比較大的。
      首先就是dwr的中心的dwr,再向外幅到其它的spring支持、webwork支持、guice支持等,很啰嗦的。而EasyJWeb的重心是web應用,畢竟一個大型的Web應用不可能全部是遠程腳本調用,更多的情況只是為了實現一些功能才需要的。easyjweb中的這個遠程腳本調用只是一個非常普通的EasyJWeb Action,由于這部分只專注于遠程腳本功能實現,所以代碼非常少。
      另外很多dwr不方便實現的的,比如服務器端的方法的參數為(除集合以外)接口類型。當然EasyJWeb也有一些沒有實現,比如,往服務器端發送集合或數組的時候,只能發送簡單類型的值。  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-03 14:18 忠厚中國
    謝謝簡易java框架為我帶來這么好的東西,我正在為此事著急呢,請簡易java框架的兄弟們一定指點一二,我在項目中好少費些力氣去學習DWR。  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎[未登錄] 2008-01-03 18:22 stone
    如果和自己比,性能提升了10倍,那說明以前的性能太差了  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2008-01-05 14:54 小石
    發送長整數組和List都返回null錯誤。  回復  更多評論
      
    # re: 性能提升10倍的Ajax遠程腳本調用引擎 2009-10-09 05:00 wangqi

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


    網站導航:
     
    主站蜘蛛池模板: 中文字幕无码视频手机免费看| 亚洲成a人片7777| 高清国语自产拍免费视频国产 | 毛片免费全部免费观看| 国产午夜无码片免费| 亚洲国产AV无码一区二区三区| 青青草原精品国产亚洲av| 久久乐国产精品亚洲综合| 国产精品成人四虎免费视频| 免免费国产AAAAA片| 免费无码成人AV在线播放不卡| 国产V片在线播放免费无码| 国产成人亚洲综合a∨| 亚洲色成人四虎在线观看| 亚洲日本在线播放| 91亚洲国产成人久久精品网站| 国产AⅤ无码专区亚洲AV | 久久精品无码专区免费| 美女视频黄a视频全免费网站一区| 最新国产精品亚洲| 亚洲娇小性色xxxx| 亚洲一区二区三区四区视频| 亚洲欧洲国产成人精品| 亚洲神级电影国语版| 亚洲一区二区三区四区在线观看| 亚洲国产精品无码久久一线| 亚洲色中文字幕无码AV| 亚洲午夜国产精品无码老牛影视| 中文字幕亚洲一区| 亚洲中文字幕无码永久在线| 亚洲色精品vr一区二区三区| 亚洲精品国产精品乱码在线观看| 亚洲日韩一页精品发布| 亚洲av永久无码制服河南实里| 亚洲国产精品一区二区成人片国内 | 成年女人看片免费视频播放器| 免费精品国产自产拍在线观看图片| **一级一级毛片免费观看| 成人免费福利视频| 永久黄网站色视频免费| 免费一级毛片在播放视频|