999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析Ajax中常用的設計模式

2009-04-23 10:03:58趙伍軍
新媒體研究 2009年6期

趙伍軍

[摘要]Ajax是近幾年web應用方面的熱點技術,其應用越來越廣泛。一般來說傳統的web應用中幾乎沒有使用設計模式,但在Ajax的開發中卻涉及到了部分設計模式,就此內容做一個簡要的介紹和分析。

[關鍵詞]Ajax 設計模式 Adapter Facade

中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0320032-01

一、Ajax中使用設計模式的原因

盡管Ajax是現在Web技術發展的熱點之一,但仍然屬于Web應用的范圍,而我們知道通常傳統的Web應用中幾乎沒有使用設計模式,那么為何要在Ajax開發中應用設計模式?主要有依稀幾點原因:1.Ajax應用中的JavaScript代碼越來越復雜,代碼庫的規模越來越大,需要一種有效組織代碼庫的手段;2.Javascript編程與其他服務器端編程語言(例如Java語言,C#語言等)相比過于靈活,更需要通過引入設計模式加以控制,使得代碼更加的健壯;3.Javascript支持面向對象的開發,為應用設計模式提供了必要的基礎;4.設計模式是面向對象開發的精華,應用設計模式可以實現良好的重用和靈活的架構。

二、Adapter和Facade模式

在開發Web應用時,我們都要面對一個問題:如何保證Web應用程序在不同的瀏覽器上都能正確的顯示。Web技術林立,大部分瀏覽器廠商的實現都或多或少地與這些標準存在差異。有的Web技術標準本身就很含糊,容易引起不同的解釋;有的瀏覽器廠商處于易用的目的,各自通過自己的方式來擴展這些標準。這就造成了不同的瀏覽器之間的差異。

基于目前Web開發的特點,特別是客戶端Javascript腳本的開發,需要面對很多變化和跨平臺的挑戰,所以,如果應用Adapter和Facade模式,將會非常有益于提高我們軟件的可維護性,以及降低總體開發成本。

(一)Adapter模式。Adapter模式是解決接口不一致的問題。在實際的應用程序中,有時候客戶端(這里指調用方)想要調用接口與實際上服務器端(這里指被調用方)所提供的接口不一致。出現這種情況,我們可能會有兩種選擇,一種是修改調用方或者被調用方的接口,使之相互適應。另一種就是在調用方和被調用方之間加入一個適配器(Adapter),讓其隱藏兩者之間的差異。

在Ajax應用中經常用到的XMLHttpRequest對象,就是需要Adapter模式的一個很好的實例。XMLHttpRequest對象是非W3C(World Wide Web Consortium,萬維網聯盟)標準,所以,盡管現有的較新的瀏覽器都支持該對象,但其具體實現是不一致的。在微軟的IE瀏覽器里,XMLHttpRequest是以ActiveXObject的樣式實現的。而在Mozilla瀏覽器里,其又以一種build-in對象的形式實現。

對于我們常用的應用程序來說,我們并不關心這些實現細節,而是如何能夠獲得一個可以供使用的XMLHttpRequest對象。獲得一個可用XMLHttpRequest對象的代碼如下所示:

Function createXMLHttpRequest()

{

var CXMLHttpRequest = false;

if (window. XMLHttpRequest)

{

//創建非IE瀏覽器中XMLHttpRequest對象

CXMLHttpRequest = new XMLHttpRequest();

}

else if(window.SctiveXObject)

{

//創建IE瀏覽器中的XMLHttpRequest對象

try

{

CXMLHttpRequest = new ActiveXObject (”Msxml2.XMLHTTP”);

}

catch(e1)

{

try

{

CXMLHttpRequest = new ActiveXObject (”Microsoft.XMLHTTP”);

}

catch(e2)

{

//不能創建XMLHttpRequest對象

alert('不能創建異步請求對象!');

}

}

}

return CXMLHttpRequest;

}

該文件中的try……catch語句幫助我們實現了跨平臺性,createXMLH

TtpRequest()函數封裝了與特定瀏覽器相關的創建XMLHttpRequest對象的方法,該函數便是一個Adapter。這段代碼實現了一個創建XMLHttpRequest

對象的統一接口,并通過委托(delegate)的機制,自動幫助我們用各種方法在不同的平臺下實例化一個XMLHttpRequest對象。

(二)Facade模式。Facade實際上是理順系統間關系,降低系統耦合度的一個常用的辦法。有時候,我們的客戶端(調用方)所調用的子系統過于復雜。通常,調用方需要連續調用被調用方的多個服務才能完成某種特定的任務。每次調用方重復調用操作都非常麻煩,并且容易出錯,所以,我們需要提煉出一些經常用到的操作,組合成一個接口。這樣,每次調用方需要該服務時,僅需要調用該Facade接口,便可以輕松執行某項特定任務。在Ajax中,當需要用XMLHttpRequest;對象向服務器請求數據的時候,僅僅為了請求一次數據就需要五個步驟:1.建立XMLHttpRequest;對象;2.指定響應處理函數函數;3.用open方法設置請求方式,URL地址和請求模式;4.用send發送請求;5.監視請求狀態,并對相應的狀態進行響應處理。

三、總結

本文針對設計模式在Ajax中的應用,選取了Adapter和Facade兩種比較典型設計模式,對其進行了簡要的分析和介紹。在Ajax中還用到了其他一些設計模式,比如Observer模式、Command模式和Singleton模式,限于篇幅有限,在此不再作一一介紹。如有興趣,可以查詢相關資料。

參考文獻:

[1]祝紅濤、劉海松、郝軍啟,Ajax從入門到精通,北京:電子工業出版社,2008.

[2]譚日森,Ajax技術的特點及發展前景,信息科學,2007年21期.

[3]劉娜、鄭楠楠,認識Ajax與Ajax的應用,電腦開發與應用,2008年4期.

主站蜘蛛池模板: 亚洲欧洲一区二区三区| 最新精品国偷自产在线| 久久无码av三级| 欧美精品亚洲精品日韩专区va| 草草影院国产第一页| 免费亚洲成人| 毛片视频网| 国产乱视频网站| 欧美中文字幕无线码视频| 伊人天堂网| 麻豆国产精品| 热热久久狠狠偷偷色男同| 成人国产小视频| 亚洲欧美综合精品久久成人网| 国产成人高清在线精品| 女人天堂av免费| 精品福利视频导航| 在线国产你懂的| 亚洲欧美日韩另类| 无码一区二区三区视频在线播放| 亚洲欧洲美色一区二区三区| 丰满的少妇人妻无码区| 国产黄在线观看| 亚洲天堂区| 国产99在线观看| 国产成人高精品免费视频| 97在线免费| 亚洲欧美综合在线观看| 欧美国产日产一区二区| 美女无遮挡被啪啪到高潮免费| 国产一区三区二区中文在线| 美女无遮挡被啪啪到高潮免费| 久久这里只精品国产99热8| 亚洲日韩Av中文字幕无码| 无码视频国产精品一区二区| 国产成人啪视频一区二区三区| 国产新AV天堂| 黄色网页在线播放| 欧美日韩北条麻妃一区二区| 国产精品吹潮在线观看中文| 老司机久久99久久精品播放| 精品少妇人妻无码久久| 福利一区在线| 午夜精品久久久久久久99热下载| 曰AV在线无码| 国产亚洲精品91| 免费观看男人免费桶女人视频| 国产精品自拍露脸视频| 99这里只有精品在线| 67194亚洲无码| 亚洲黄色片免费看| 亚洲精品黄| av在线无码浏览| 爆操波多野结衣| 国产成人亚洲无码淙合青草| 国产精品女同一区三区五区| 欧洲成人免费视频| 国产一级做美女做受视频| 久草视频精品| 亚洲国产天堂久久九九九| 久久人与动人物A级毛片| 日本午夜三级| 欧美亚洲另类在线观看| 国产爽妇精品| 久久久91人妻无码精品蜜桃HD| 香港一级毛片免费看| 亚洲免费黄色网| 亚洲精品不卡午夜精品| 2021国产精品自拍| 成人日韩视频| 国产97视频在线| 在线日韩日本国产亚洲| 第一页亚洲| 天堂岛国av无码免费无禁网站| 国产精品亚洲欧美日韩久久| 国产一区二区色淫影院| 免费国产在线精品一区| 日韩小视频在线观看| 露脸一二三区国语对白| 亚洲动漫h| 日韩小视频在线观看| 国产95在线 |