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

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

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

    posts - 193,  comments - 520,  trackbacks - 0
    正在翻譯《Enterprise AJAX》,附錄里介紹到OPENAJAX HUB,google相應的中文資料很少,所以就把譯文貼出來:)

    OpenAjax Hub(“Hub”)主要用來處理Web應用開發(fā)者需要在同一個應用中同時使用多個AJAX運行庫的情況。它提供標準的JavaScript,當被包含在AJAX驅(qū)動的Web應用里時,它使得多個AJAX工具包能夠在同一個頁面里一起協(xié)同工作。

    AJAX應用開發(fā)者在開發(fā)中的需求往往存在著巨大的差異,這導致了如今市場上存在超過200個各種各樣的AJAX產(chǎn)品,同時這些產(chǎn)品的架構(gòu)和特性也存在巨大的差異。對一些開發(fā)者來說,他們認為開發(fā)中最重要的因素是找到一個能提供與后端服務器強大集成能力的AJAX工具包。

    而對其他一些開發(fā)者來說,最重要的因素則是能否應用特殊的客戶端組件(例如,富數(shù)據(jù)網(wǎng)格組件或交互式的圖表組件)。結(jié)果,AJAX生態(tài)系統(tǒng)發(fā)展到現(xiàn)在,開發(fā)者在大部分時間里都能找到滿足他們每個特殊需求的AJAX工具包,但是也存在問題,他們往往必須在同一個Web應用里混合和匹配使用多個AJAX工具包才能滿足所有的需求。 

    Hub應用的一個重要場合是門戶和內(nèi)容糅合,這里,應用開發(fā)者創(chuàng)建一個頁面,頁面里松散組裝預先包裝好的應用組件。Hub實際上是保證這些AJAX驅(qū)動的應用組件能夠使用多個不同的AJAX工具包創(chuàng)建。

    主要特性:Hub 的發(fā)布/訂閱管理器

    Hub的主要特性是它的發(fā)布/訂閱管理器(“pub/sub管理器”)。 pub/sub管理器允許內(nèi)容糅合的一個部分能夠傳播其他應用組件所訂閱的事件。例如,假設存在一個日歷組件,該組件允許用戶能夠選取一個特定的日期。內(nèi)容糅合里可能存在多個UI組件,這些組件都需要根據(jù)新選擇的日歷日期而更新它們的視覺外觀。在這種情況下,日歷組件將發(fā)布一個“新日歷日期”的事件,而其他可視化組件將訂閱這個事件。因此,pub/sub管理器的通用消息的優(yōu)點是給由不同AJAX工具包所構(gòu)建的組件之間提供了一個關(guān)鍵的集成機制。

    Hubpub/sub管理器提供各種各樣的先進特性,例如對事件名稱通配符的強大支持,在下面的例子里并沒有展示這個特性。

    范例

    讓我們假設現(xiàn)在有這樣一個商務智能應用,該應用使用下面的AJAX運行庫:

    UTILS.js, 對瀏覽器的JavaScript環(huán)境提供非常有用的擴展,例如XMLHttpRequestAPIs

    CALENDAR.js,提供一個日歷組件

    CHARTS.js, 提供一個圖表組件

         DATAGRID.js,提供一個交互式的數(shù)據(jù)網(wǎng)格組件

    該應用有一個唯一的日歷組件,用戶可以以圖表組件的形式(例如,每日情形、每周情形、每月情形和每年情形的柱狀圖)和數(shù)據(jù)網(wǎng)格組件的形式(例如,地方數(shù)據(jù)與全國數(shù)據(jù),兩種數(shù)據(jù)都以用戶選擇的感興趣的列展示)選擇其中的一些數(shù)據(jù)視圖當一個新的日期在日歷組件里被選擇時,各個用戶指定的可視化組件(例如,圖表和/或數(shù)據(jù)網(wǎng)格組件)都需要被更新。

    實現(xiàn)該應用的一個方法是在加載其他AJAX庫之前加載OpenAjax HubJavaScript。例如:

    <html>

    <head>



    <script type=”text/javascript” src=”OpenAjax.js”/>

    <script type=”text/javascript” src=”UTILS.js”/>

    <script type=”text/javascript” src=”CALENDAR.js”/>

    <script type=”text/javascript” src=”CHARTS.js”/>

    <script type=”text/javascript” src=”DATAGRID.js”/>



    </head>


     

    一些AJAX運行庫包含OpenAjax Hub,將Hub作為它們標準發(fā)布的一部分,在這種情況下,只要特定的AJAX運行期的JavaScript(譯注:這里特定的JavaScript指的就是包含OpenAjax HubAJAX運行庫的代碼)在其他兼容OpenAjax的運行庫之前被加載,那么則沒有必要為OpenAjax.js使用一個單獨的<script>元素。

    要使應用工作,開發(fā)者需要注冊一個回調(diào)函數(shù),當用戶在日歷組件里選擇一個新的日期時調(diào)用該函數(shù)。這個回調(diào)函數(shù)接著使用OpenAjax Hubpublish()函數(shù)傳播這個新日期事件:

    <script type=”text/javascript”>



    function MyCalendarCallback() {

    OpenAjax.hub.publish(“myapp.newdate”, newdate);

    }



    </script>
     

    接著開發(fā)者需要開發(fā)這樣一些代碼:所有的圖表組件和數(shù)據(jù)網(wǎng)格組件都要訂閱這個新日期事件,并要提供一個回調(diào)函數(shù)。各個回調(diào)函數(shù)將相應地更新特定的可視化組件:


    <script type=”text/javascript”>



    function NewDateCallback(eventname, publisherData,

    subscriberData) {

    更新特定的可視化組件

    }

    OpenAjax.hub.subscribe(“myapp.newdate”, NewDateCallback);



    </script>

    未來支持OpenAjax Hub的工具包

    OpenAjax聯(lián)盟正與工業(yè)界一起合作,達到對OpenAjax Hub的廣泛支持。一個特殊的AJAX工具包可以像下面這樣支持OpenAjax Hub

    AJAX工具包可以包含Hub(最好的方式)。Hub可以被小于3KJavaScript實現(xiàn),所以一些AJAX工具包簡單地捆綁Hub,將它作為它們工具包的一個標準組件。

    如果Hub在運行環(huán)境里可用則使用它。其他一些AJAX工具包可能決定在它們的發(fā)布中并不包含Hub,它們會檢查Hub是否早先已經(jīng)被加載了,如果已經(jīng)加載,它們則直接使用Hub的服務。 

    第三方的開發(fā)者可以開發(fā)適配器。對大多數(shù)工具包來說,它們可能允許第三方的開發(fā)者編寫少量的JavaScript使得自己能夠支持Hub

    AJAX工具包包含內(nèi)置對Hub的支持時,應用開發(fā)者的工作將更加容易,但是通過查找或編寫適配器的方式,Hub依然可以被那些并未實現(xiàn)支持Hub的工具包所使用。





    http://m.tkk7.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請注明出處:)
    posted on 2008-01-01 12:57 ronghao 閱讀(2467) 評論(4)  編輯  收藏 所屬分類: ajax相關(guān)

    FeedBack:
    # re: OPENAJAX HUB介紹
    2008-09-01 08:38 | cn-cuckoo
    祝賀你的書出版了。我在翻譯《Advanced Ajax》附錄時,把Hub的subscribe翻譯成“預訂”了。  回復  更多評論
      
    # re: OPENAJAX HUB介紹[未登錄]
    2008-09-01 09:24 | ronghao
    呵呵,謝謝:)  回復  更多評論
      
    # re: OPENAJAX HUB介紹
    2009-03-31 10:16 | shuttle
    tks,不錯,有機會多向你請教。  回復  更多評論
      
    # re: OPENAJAX HUB介紹
    2012-05-17 14:15 | 歐昭平
    @shuttle
    麻煩能不能給我個open ajax的實例 謝謝  回復  更多評論
      
    <2008年9月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    關(guān)注工作流和企業(yè)業(yè)務流程改進。現(xiàn)就職于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

    常用鏈接

    留言簿(38)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    常去的網(wǎng)站

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲成人激情在线| 亚洲欧洲日产国产综合网| 免费无码一区二区三区| 国产精品视频永久免费播放| 青青青国产免费一夜七次郎| 久久影视综合亚洲| 自拍偷区亚洲国内自拍| 久久福利青草精品资源站免费| 国产精品入口麻豆免费观看| 亚洲日本中文字幕天堂网| 一级毛片免费不卡| 亚洲熟妇无码乱子AV电影| 亚洲欧美日韩综合久久久| 日本人护士免费xxxx视频| 久久久婷婷五月亚洲97号色| 国产亚洲视频在线观看| 亚洲成av人片在线观看天堂无码| 亚洲春色在线观看| 免费看美女让人桶尿口| 青娱乐在线视频免费观看| 成年女人色毛片免费看| 亚洲欧洲日产国产综合网| 欧美最猛性xxxxx免费| 亚洲av无码一区二区三区人妖| AAA日本高清在线播放免费观看| 永久免费毛片手机版在线看| 另类专区另类专区亚洲| 亚洲无码在线播放| 国产92成人精品视频免费| 噜噜综合亚洲AV中文无码| 亚洲国产精品无码久久久蜜芽| 99久久99这里只有免费费精品| 国产尤物在线视精品在亚洲| 亚洲国产精品无码久久一区二区 | 精品亚洲成AV人在线观看| 在线观看免费人成视频| 亚洲成年人免费网站| 国产精品成人无码免费| 久久久久久久99精品免费观看| 亚洲三级高清免费| 亚洲精品无码久久一线|