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

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

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

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    AJAX方案選擇

    Posted on 2006-04-02 14:43 canonical 閱讀(1270) 評論(0)  編輯  收藏 所屬分類: 設計理論
    ? 在采用AJAX技術的應用中, 常見的是兩種架構設計, 一種是采用RPC(Remote Procedure Call)方案, 后臺應用直接將java對象包裝為service接口, 在js對外暴露(java對象完全不知道web層), 在js中通過類似函數調用的方式訪問后臺服務.而另外一種方案是在后臺維持一個前臺DOM節點的映象,觸發前臺事件之后, 前臺引擎自動截獲該事件, 并翻譯為對后臺事件監聽器的調用, 將請求提交到后臺, 后臺程序處理請求之后更新后臺DOM節點, 然后將頁面變更部分傳回前臺頁面. 這兩種方案一種是傾向于在js中提供自我封閉的程序模型(對遠程服務的調用體現為對一個js函數的調用), 一種是傾向于在后臺提供封閉的程序模型(對前臺頁面的更新體現為對一個后臺java對象的屬性和結構的改變). 這兩種方案的共同之處在于它們都試圖在一定程度上屏蔽前后臺程序的交互細節, 而提供一種統一的程序模型.
    ? 但是我們需要記住軟件設計的第一要義在于系統的分解, 而Browser和Server之間客觀存在的http信道是天然存在的一種分界線. 任何強迫我們忘記B/S之間的界限的技術都是需要謹慎對待的. 例如控制后臺對象的權限問題, 很多RPC方案限制了應用程序對于web接入層的直接接觸, 而只能通過AOP(Aspect Oriented Programming)技術來動態織入權限控制代碼. 在實際使用中, 這種方式往往因為service接口函數的多樣化而造成配置上的繁瑣.? 而在我們的體系架構中, 系統邊界劃分在web訪問層上(而不是java service層), 借助于web訪問協議自身的一致性和透明性, 我們只需要如下實現
    ?? Object invokeWebEvent(){??? ???
    ???? return new ActionMethodInvocation(getWebObject(), getObjectEvent(), getInterceptors()).proceed();
    ?? }
    就為所有WebObject加入interceptor堆棧, 完全不需要AOP的動態織入技術.
    ? 在witrix平臺的設計中, 因為大量采用pull方案, 我們對于前后臺交互方式采取的是完全開放的態度, 前后臺的交互接口完全定義在web訪問層上(即前臺程序直接訪問一個url獲取數據), 盡量避免將系統架構的限制引入到應用程序設計中來. 確實, Browser和Server之間的原始交互方式是受限制的, 狹窄的, 但是從系統設計的角度上說, 這正是異構系統集成和進行系統核心控制的最好場所, 任何試圖獨占該連接信道并在層層封裝之后提供更加豐富的訪問語義的努力在我看來都是可疑的.
    ?
    主站蜘蛛池模板: 国产精品亚洲精品青青青| 亚洲成a人在线看天堂无码| 久久夜色精品国产亚洲AV动态图| 一级毛片免费不卡| 亚洲最新视频在线观看| a在线观看免费网址大全| 国产乱辈通伦影片在线播放亚洲 | 老司机午夜在线视频免费| 国产成人免费a在线资源| 全部在线播放免费毛片| 亚洲精品无码久久久| 久青草视频在线观看免费| 国产亚洲欧洲精品| 国产成人久久AV免费| 亚洲春黄在线观看| 亚洲精品偷拍视频免费观看| 在线亚洲精品自拍| 免费一级毛片在线播放视频| 亚洲另类古典武侠| 永久免费视频v片www| 无码的免费不卡毛片视频| 日韩精品亚洲aⅴ在线影院| 最近免费字幕中文大全| 亚洲色图黄色小说| 在线观看人成视频免费| 青草青草视频2免费观看| 亚洲乱亚洲乱妇无码麻豆| 99国产精品免费视频观看| 日韩亚洲不卡在线视频中文字幕在线观看 | 久久精品网站免费观看| 女人裸身j部免费视频无遮挡| 亚洲色精品88色婷婷七月丁香 | 成人免费ā片在线观看| 亚洲精品欧洲精品| 精品视频一区二区三区免费| 亚洲熟妇av一区二区三区下载| 国内精品免费视频自在线| 中文字幕视频免费在线观看| 亚洲国产精品综合久久久| 免费人成在线观看播放国产| 人人玩人人添人人澡免费|