2007年5月2日 星期三

Javascript 與 CSS 合併成單一檔案下載的小技巧
MSN SpaceGoogle DocGoogle Blog啪啦資訊科技
Chui-Wen Chiu(Arick)
2007.05.02 建立

[1] 提出一種利用瀏覽器解析 CSS 和 Javascript 內容的行為模式,將 CSS 與 Javascript 內容合併在當一檔案中的小技巧,他的原理在於 CSS 解析器(Parser) 會忽略 <!--,而 Javascript 解析器會將 <!-- 解譯成 //,所以,如果內容是
<!-- /*
function t(){
alert("hello");
}
<!-- */
<!-- body { background-color: Aqua; }

對於 CSS 解析器來說,等同於下面的內容
/*
function t(){
alert("hello");
}
*/
body { background-color: Aqua; }

對於 Javascript 來說,內容則等同於下面:

// /*
function t(){

alert("hello");

}
// */
// body { background-color: Aqua; }


因此,如果我們將上述混和CSS與Javascript的內容存成 test.jscss,並在 HTML 分別使用 <script> 和 <style> 引用
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> new document </title>
<link type="text/css" rel="stylesheet" href="test.jscss" />
<script type="text/javascript" language="javascript" src="test.jscss"></script>
</head>

<body onload = 't();'>
fdasfdsafdsa
</body>
</html>

則神奇的效果出現了
[IE6]


[Firefox 2]


該技術在[1] 描述 IE6、IE7和 Firefox 2.0 上測試通過,其他瀏覽器可能也可以運作。這樣的技術並非正規作法,而且該技術並未完整的測試過,是否有例外情況並未得知,且這些多餘的 <!-- 是否會造成維護上得問題,都是值得考慮,所以該技巧在實務仍需經過一段時間的驗證,也許未來在某種應用場合可以使用,多知道一些未嘗不好。

參考資料:
[1] Combine CSS with JS and make it into a single download!

沒有留言:

搜尋此網誌