<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

    資源文件管理

    Posted on 2010-01-17 17:51 canonical 閱讀(1345) 評論(0)  編輯  收藏 所屬分類: Witrix開發平臺
        html主要通過內置的<script>,<link>, <img>等標簽引入外部的資源文件,一般的Web框架并沒有對這些資源文件進行抽象,因此在實現組件封裝時存在一些難以克服的困難。例如一個使用傳統JSP Tag機制實現的Web組件中可能用到js1.js, js2.js和css1.css等文件,當在界面上存在多個同樣的組件的時候,可能會生成多個重復的<script>和<link>標簽調用,這將對頁面性能造成嚴重的負面影響。資源管理應該是一個Web框架的內置組成部分之一。在Witrix平臺中,我們主要借助于tpl模板引擎來輸出html文本, 因此可以通過自定義標簽機制重新實現資源相關的html標簽, 由此來提供如下增強處理功能:

    1. 識別contextPath
       tpl模板中的所有資源相關標簽都會自動拼接Web應用的contextPath, 例如當contextPath=myApp時
       <script src="/a.js"></script> 將最終輸出 <script src="/myApp/a.js" ...>

    2. 識別重復裝載
       <script src="a.js" tpl:once="true"></script>
       tpl:once屬性將保證在頁面中script標簽實際只會出現一次.

    3. 識別組件內相對路徑
      開發Web組件時,我們希望所有資源文件都應該相對組件目錄進行定位,但是直接輸出的<script>等標簽都是相對于最終的調用鏈接進行相對路徑定位的. 例如在page1.jsp中調用了組件A, 在組件A的實現中, 輸出了<script src="my_control.js"></script>
     我們的意圖一般是相對于組件A的實現文件進行定位, 而不是相對于page1.jsp進行定位. tpl模板引擎的相對路徑解析規則為永遠相對于當前文件進行定位. 例如
      <c:include src="sub.tpl" />
    在sub.tpl中的所有相對路徑都相對于sub.tpl文件進行定位.

    4. 編譯期文件有效性檢查
       在編譯期, tpl引擎會檢查所有引入的資源文件的有效性. 如果發現資源文件丟失, 將直接拋出異常. 這樣就不用等到上線后才發現文件命名已修改等問題.

    5. 緩存控制
      瀏覽器缺省會緩存css, js等文件, 因此系統上線后如果修改資源文件可能會造成與客戶端緩存不一致的情況. 一個簡單的處理方式是每次生成資源鏈接的時候都拼接文件的修改日期或者版本號, 這樣既可利用客戶端緩存, 又可以保證總是使用最新版本. 例如
      <script src="a.js"></script>將會輸出 <script src="/myApp/myModule/a.js?344566" ...>

    6. 字符集選擇
      為了簡化國際化處理, 一般提倡的最佳實踐方式是堅持使用UTF-8編碼. 但是很多情況下可能使用系統內置的GBK編碼會更加方便一些, 另外集成一些既有代碼時也存在著不同字符集的問題. 在Witrix平臺中, 所有輸出的資源標簽都會標明對應的字符集, 如果沒有明確設置就取系統參數中的缺省字符集.
     例如 <script src="a.js"></script> 將會輸出 <script ... charset="GBK"></script>

    7. 缺省theme支持
      為了支持多種頁面風格, 往往不是簡單的替換css文件即可實現的, 它可能意味著整個組件的實現代碼的更換. Witrix平臺中通過一系列缺省判斷來簡化這一過程. 例如如下代碼表明如果設置了ui_theme系統參數, 并且對應的特殊實現存在, 則使用特殊實現, 否則系統缺省實現.
      <c:include src="${cp:ui_theme()}/ctl_my_ctl.tpl" >
        <c:include src="default/ctl_my_ctl.tpl" />
      </c:include>
    主站蜘蛛池模板: 国产福利电影一区二区三区,亚洲国模精品一区 | 国产免费无码一区二区| 国产一级淫片视频免费看| 亚洲精品美女网站| 毛片a级三毛片免费播放| 亚洲日韩中文字幕无码一区| 扒开双腿猛进入爽爽免费视频 | 亚洲大成色www永久网站| a级毛片毛片免费观看永久| 国产亚洲精aa成人网站| 免费人成网站在线观看不卡| 亚洲av网址在线观看| 97青青草原国产免费观看| 亚洲av无码国产综合专区 | 久久久精品2019免费观看| 亚洲国产成人精品无码区在线秒播| www.黄色免费网站| 亚洲人成电影网站色www| 免费观看四虎精品国产永久| 精品一区二区三区免费观看| 亚洲国产成人久久综合一| 四虎在线免费视频| 亚洲欧美aⅴ在线资源| 亚洲精品无码激情AV| 男人都懂www深夜免费网站| 亚洲欧洲国产经精品香蕉网| 午夜a级成人免费毛片| 国产日韩在线视频免费播放| 亚洲精品国产成人专区| 韩国二级毛片免费播放| 999zyz**站免费毛片| 亚洲福利视频网址| 国产精品久免费的黄网站| 99久久免费国产精精品| 亚洲AV成人无码天堂| 亚洲伊人久久综合中文成人网| 999任你躁在线精品免费不卡| 欧美色欧美亚洲另类二区| 亚洲AV无码国产精品色午友在线| 在线精品免费视频| a级在线免费观看|