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

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

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

    posts - 36, comments - 419, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    把JS和CSS合并到1個(gè)文件

    Posted on 2010-04-18 18:56 BearRui(AK-47) 閱讀(10691) 評(píng)論(6)  編輯  收藏 所屬分類: WEB
    合并JS文件和CSS文件很多人都知道,也用過(guò),目的是為了減少請(qǐng)求數(shù)。但有時(shí)候我們覺(jué)的把JS合并到1個(gè)文件,CSS又合并到另外1個(gè)文件也是浪費(fèi),我們?nèi)绾文馨袰SS和JS一起合并進(jìn)1個(gè)文件了?

    這里需要使用1個(gè)常見(jiàn)的注釋符<!-- 主要是利用css,js解析器對(duì)<!-- 進(jìn)行不同的解析來(lái)實(shí)現(xiàn)JS和CSS合并的。

       1. CSS解析器 會(huì)忽略<!--符號(hào),
       2. JS解析器會(huì)把<!--當(dāng)作注釋符號(hào),與// 注釋相同。

    看看下面的列子:   
     <HEAD>
      <TITLE>test</TITLE>
      <style type="text/css">
       <!--.d{color:red;}
      </style>
      <script>
        <!-- function showMsg(m){alert(m);}
      </script>
     </HEAD>
     <BODY>
       <div class='d'>顏色變成紅色</div>
       <input type="button" value="不會(huì)彈出" onclick="showMsg('js');" />
     </BODY>
      
    運(yùn)行上面的代碼,會(huì)發(fā)現(xiàn)CSS是正常的,而JS確失效了,因?yàn)樯厦娴拇a等價(jià)于: 
      <style type="text/css">
       .d{color:red;}
      </style>
      <script>
        // function showMsg(m){alert(m);}
      </script>

    利用這個(gè)特性,我們就可以實(shí)現(xiàn)把js和CSS合并到1個(gè)文件中:
      
      test.jscss 文件
      <!-- /* 
       function showMsg(m){
        alert(m);
      }
      <!-- */ 

      <!-- .d{color:red;} 

    index.html
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
        <title>test</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
        <script type="text/javascript" language="javascript"  src="test.jscss"></script>
        <link rel="stylesheet" rev="stylesheet" type="text/css" href="test.jscss" />
      </head>
     <body>
       <div class='d'>顏色變成紅色</div>
       <input type="button" value="不會(huì)彈出" onclick="showMsg('js');" />
     </body>
    </html>

     上面代碼的JS和CSS都能正常運(yùn)行,雖然test.jscss被鏈接了2次,但因?yàn)榫彺娴脑颍鋵?shí)只會(huì)下載一次。

        注:上面代碼中chrome中運(yùn)行有問(wèn)題,這是因?yàn)閏hrome中下載同1個(gè)文件之后只解析一次,比如你先用<script 加載了test.jscss,chrome就會(huì)使用js解析器來(lái)解析test.jscss,而當(dāng)你再用link加載test.jscss文件的時(shí)候,chrome會(huì)直接把用js解析器解析后文件傳遞給link,而不會(huì)使用css解析器再解析一次,這就導(dǎo)致上面的代碼只有js生效,而css無(wú)效,如果把link標(biāo)簽放在前面,則js會(huì)失效。目前還沒(méi)找到很好的解決版本,雖然可以在第二次加載的時(shí)候在url后帶1個(gè)參數(shù)解決,但這樣又變成2次請(qǐng)求了。希望有知道的朋友指點(diǎn)下。


    [作者]:BearRui(AK-47)
    [博客]: http://www.tkk7.com/bearrui/
    [聲明]:本博所有文章版權(quán)歸作者所有(除特殊說(shuō)明以外),轉(zhuǎn)載請(qǐng)注明出處.
    英雄,別走啊,幫哥評(píng)論下:  

    精彩推薦 好文要頂 水平一般 看不懂 還需努力

    評(píng)論

    # re: 把JS和CSS合并到1個(gè)文件  回復(fù)  更多評(píng)論   

    2010-04-18 19:24 by FFF
    有點(diǎn)意思

    # re: 把JS和CSS合并到1個(gè)文件  回復(fù)  更多評(píng)論   

    2010-04-19 18:00 by HiMagic!
    挺有新意的用法,原創(chuàng)?

    # re: 把JS和CSS合并到1個(gè)文件  回復(fù)  更多評(píng)論   

    2010-04-19 20:57 by BearRui(AK-47)
    @HiMagic!
    呵呵,其實(shí)發(fā)現(xiàn)使用<!--來(lái)合并JS和CSS的并不是我,大概2,3年前就看到過(guò)文章使用這個(gè)來(lái)合并JS和CSS,不過(guò)一直沒(méi)去實(shí)踐過(guò),最近實(shí)際使用了下,發(fā)現(xiàn)在chrome中有點(diǎn)問(wèn)題,就順便寫(xiě)出來(lái)。

    # re: 把JS和CSS合并到1個(gè)文件[未登錄](méi)  回復(fù)  更多評(píng)論   

    2010-04-23 15:35 by john
    可以用來(lái)玩玩

    # re: 把JS和CSS合并到1個(gè)文件  回復(fù)  更多評(píng)論   

    2011-01-11 11:12 by tt
    不錯(cuò)呀,但這個(gè)好像不能通用

    # re: 把JS和CSS合并到1個(gè)文件  回復(fù)  更多評(píng)論   

    2014-08-30 22:42 by 唐輝
    不建議優(yōu)先利用bug做功能
    主站蜘蛛池模板: 一个人看的www在线观看免费| 免费99热在线观看| 国产精品亚洲lv粉色| 国产亚洲色视频在线| xxxx日本免费| 色婷婷综合缴情综免费观看| 亚洲AV无码日韩AV无码导航| 欧美三级在线电影免费| 国产免费一区二区三区免费视频| 亚洲图片中文字幕| 亚洲国产一级在线观看| 野花高清在线观看免费3中文 | 亚洲电影一区二区| 日本不卡高清中文字幕免费| 国产成人AV片无码免费| 国产成人亚洲毛片| 亚洲国产成人久久| 亚洲女同成av人片在线观看| 免费看美女被靠到爽| 最近免费中文字幕大全免费| xxxxx做受大片视频免费| 在线综合亚洲中文精品| 日韩va亚洲va欧洲va国产| 爽爽日本在线视频免费| 久久久久久曰本AV免费免费| 精品国产污污免费网站入口在线| 亚洲综合无码无在线观看| 婷婷久久久亚洲欧洲日产国码AV | 久久中文字幕免费视频| 免费夜色污私人影院网站| 亚洲一区二区观看播放| 亚洲视频在线观看| 亚洲精品国产品国语在线| 亚洲成年人啊啊aa在线观看| 天天天欲色欲色WWW免费| 亚洲免费福利视频| 国产午夜不卡AV免费| 久久WWW免费人成—看片| 免费无码国产在线观国内自拍中文字幕 | 亚洲天天在线日亚洲洲精| av在线亚洲欧洲日产一区二区|