天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

談?wù)凙SP.NET皮膚機(jī)制的實(shí)現(xiàn)

  做一個(gè)WEB程序,能夠在盡量修改極少程序代碼的情況下,輕松制定皮膚以及切換皮膚,應(yīng)該都是需要的,誰(shuí)也不想,在網(wǎng)站界面想要改版的時(shí)候,要改一大片邏輯代碼。

  一個(gè)合格的皮膚機(jī)制體系的實(shí)現(xiàn),應(yīng)該要做到以下幾點(diǎn):

  • ->頁(yè)面模板上要極少擁有邏輯代碼(如果模板上擁有大量邏輯代碼,那估計(jì)這個(gè)也不叫作模板了)。
  • ->能夠輕松改變頁(yè)面布局,同時(shí)不影響程序代碼(.cs)。
  • ->新模板的定制,基本上能由皮膚制作者參照舊模板自行完成,不需要開(kāi)發(fā)人員太多介入。
  • ->保持性能。

  然后,來(lái)看看,都有哪些方法大家用來(lái)實(shí)現(xiàn)所謂的皮膚機(jī)制,同時(shí)進(jìn)行各個(gè)方法的一些個(gè)人說(shuō)明。

  1.      改變頁(yè)面調(diào)用的CSS文件來(lái)?yè)Q膚。

  這一個(gè),嚴(yán)格上來(lái)講,不應(yīng)該算作皮膚機(jī)制。雖然CSS非常強(qiáng)大,也能夠通過(guò)它來(lái)任意改變頁(yè)面元素布局,但它的HTML始終是不變的,所以局限性是非常大的。

  優(yōu)點(diǎn):完全不影響性能,甚至可以完全不由服務(wù)端代碼來(lái)管理它的變換,可以使用JS來(lái)切換皮膚(由此,在我們有一套完美皮膚機(jī)制的情況下,這種方法,可以完全不與此機(jī)制沖突,讓用戶在客戶端作更多的個(gè)性化)。

  缺點(diǎn):如果作為核心皮膚機(jī)制的話,非常有局限性。

  示例:如QQ.COM, 114LA.COM上面的一些可點(diǎn)擊的小色塊,就是改變調(diào)用的CSS文件來(lái)實(shí)現(xiàn)換膚。

  2.      讀取模板文件,替換標(biāo)識(shí)符為要顯示的內(nèi)容與數(shù)據(jù)輸出。

      這一個(gè)方法的靈活性比較高,每套皮膚可以有自己的布局,有自己的個(gè)性。

  實(shí)現(xiàn):比如模板中有一個(gè)標(biāo)識(shí)$Subject,程序代碼會(huì)把它替換成文章標(biāo)題,然后有一個(gè)標(biāo)識(shí)塊<!—Loop[ArticleList]--><h1>$Subject</h1><div>$Content</div><!--/Loop-->,程序代碼會(huì)把它替換成一個(gè)文章列表,最后輸出處理完所有標(biāo)識(shí)符的內(nèi)容。

  通常,我們會(huì)緩存讀取到的模板內(nèi)容,但字符串的替換始終不可避免,或者也會(huì)把替換過(guò)的內(nèi)容也緩存起來(lái),但這樣子,就等于要緩存模板內(nèi)容以及替換過(guò)的內(nèi)容,占用了兩份似乎挺重復(fù)內(nèi)容的內(nèi)存(為什么?不然總不該每次數(shù)據(jù)有改變的時(shí)候就去作IO操作讀取操作讀模板文件吧,這似乎比字符串替換性能更差)。

  優(yōu)點(diǎn):模板靈活程度很高,可以隨便改動(dòng)頁(yè)面布局。

  缺點(diǎn):影響性能,開(kāi)發(fā)人員維護(hù)難,必須有特定的標(biāo)識(shí)符來(lái)表示頁(yè)面變量,后期維護(hù)可能會(huì)帶來(lái)非常多的問(wèn)題。

  3.      使用ASP.NET的App_Themes。

  這一個(gè)方法,應(yīng)該是極差的一個(gè)方法,根本只是ASP.NET的一個(gè)小纂頭,雞肋,基本上不實(shí)用。

  實(shí)現(xiàn):比如,定制一個(gè)BUTTON的樣式是這樣子的,<ASP:buttonrunat="server" BackColor="lightblue"ForeColor="black" />,類似這樣的代碼,存在于.skin文件中。然后它的換膚機(jī)制如下,<%@ Page Language="C#" Theme="default" %>。在App_Themes目錄下,是各套皮膚的獨(dú)立文件夾,各個(gè)文件夾包含皮膚的樣式以及圖片文件等等,也可以包含.skin文件。

  優(yōu)點(diǎn):只有ASP.NET才有

  缺點(diǎn):包含了第一種方法的缺點(diǎn),.skin的樣式定制方式還要嚴(yán)重依賴使用ASP.NET服務(wù)端控件,同時(shí)也影響性能,靈活性也極低。

  4.      動(dòng)態(tài)載入.ASCX文件(ASP.NET用戶控件)|| 使用.master(母版)。

  這個(gè)方法,應(yīng)該也是很多使用ASP.NET的人使用的方法,有時(shí)候,它還會(huì)與第三種方法結(jié)合使用。如果對(duì)性能需求不是很嚴(yán)格的話,中小型項(xiàng)目可以使用。

  實(shí)現(xiàn):使用LoadControl()動(dòng)態(tài)載入.ASCX文件或(與)指定頁(yè)面的MasterPageFile(目標(biāo)皮膚文件夾的)實(shí)現(xiàn)(通常.ascx與.master還會(huì)結(jié)合使用)。

  優(yōu)點(diǎn):靈活性極高,每個(gè)皮膚有獨(dú)立的布局,直接使用了.CS文件的變量與方法ETC…甚至每套皮膚還有自己獨(dú)立的代碼文件。

  缺點(diǎn):影響性能。有興趣可以自己去反編譯LoadControl方法。同時(shí),在頁(yè)面要使用<%%>這種代碼塊,有時(shí)候感覺(jué)也有點(diǎn)不雅。

  5.      Xml + xslt

  傳說(shuō)xml取代html是趨勢(shì)??不清楚,不了解。應(yīng)該不可能。此種方法我沒(méi)有深入了解過(guò),不過(guò)大概實(shí)現(xiàn)應(yīng)該是要這樣子?每一個(gè)XML(輸出數(shù)據(jù))會(huì)有一個(gè)對(duì)應(yīng)的XSL文件(控制樣式)。如下:

xml文件:
<?xml version="1.0"encoding="ISO-8859-1" ?>

<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>two of our famous Belgian Waffles with plenty of real maplesyrup</description>
<calories>650</calories>
</food>

<food>
<name>Cakes</name>
<price>$1.95</price>
<description>sweet cakes</description>
<calories>2650</calories>
</food>

</breakfast_menu>

NET技術(shù)談?wù)凙SP.NET皮膚機(jī)制的實(shí)現(xiàn),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 夜夜狂射影院欧美极品 | 亚州日韩精品AV片无码中文 | 中文字幕A片视频一区二区 中文字幕AV在线一二三区 | 九九热在线免费观看 | 毛片在线全部免费观看 | 午夜福利理论片在线播放 | 嫩草亚洲国产精品 | 欧美最猛性xxxxx亚洲精品 | 久久伊人天堂视频网 | 欧美 亚洲 有码中文字幕 | 青青草伊人网 | www.青青草 | 91精品一区二区三区在线观看 | 99re5.久久热在线视频 | 国产精品人成在线播放新网站 | 久久亚洲精品AV成人无码 | 国产精品成久久久久三级四虎 | 向日葵视频app下载18岁以下勿看 | 色综合久久天天影视网 | 色偷偷男人天堂 | 久久精品国产首叶 | 99成人在线 | 欧美 亚洲 日韩 中文2019 | 美女诱点第6季 | 亚洲性无码av在线 | 国产欧美一区二区三区久久 | 2021全国精品卡一卡二 | 国产爱豆果冻传媒在线观看视频 | 明星三级电影 | 好硬好湿好大再深一点动态图 | 欧美ⅹxxxx18性欧美 | 99热在线视频| 国产亚洲精品久久久久久久软件 | 一色屋精品亚洲香蕉网站 | 超碰97超碰在线视频哦 | 久久99精品视频 | 亚洲精品AV中文字幕在线 | 草神被爆漫画羞羞漫画 | 久久人妻无码毛片A片麻豆 久久人妻熟女中文字幕AV蜜芽 | 日本无码欧美激情在线视频 | 一本道手机无码在线看 |