<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://www.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)站

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品免费在线| 免费看黄福利app导航看一下黄色录像| 午夜小视频免费观看| 一级毛片免费播放男男| 亚洲日本中文字幕| 国产黄色片在线免费观看| 免费看黄的成人APP| 亚洲一区二区无码偷拍| 亚洲精品成人无码中文毛片不卡| 久久久久久国产a免费观看黄色大片 | 四虎最新永久免费视频| 亚洲性无码AV中文字幕| 亚洲日韩国产精品第一页一区| 久草视频在线免费| 一个人看的hd免费视频| 久久精品国产亚洲αv忘忧草| 亚洲日韩中文字幕日韩在线| 国产h视频在线观看网站免费| 视频免费1区二区三区| 亚洲一级黄色大片| 亚洲国产精品无码中文字| 在线免费观看污网站| 秋霞人成在线观看免费视频| 18禁亚洲深夜福利人口| 亚洲电影唐人社一区二区| 亚洲日韩av无码| 亚洲国产精品毛片av不卡在线| 免费看美女裸露无档网站| a毛片免费全部在线播放**| 精品一区二区三区无码免费直播| 亚洲成人网在线观看| 亚洲AV无码专区国产乱码4SE | 免费a级毛片无码av| 一二三四免费观看在线视频中文版| 西西人体免费视频| 深夜a级毛片免费视频| 久久夜色精品国产噜噜亚洲a| 亚洲第一精品在线视频| 国产亚洲一区二区三区在线不卡 | 亚洲人成影院在线| 亚洲大尺度无码无码专区|