2009-11-12 91 views
1

這聽起來有點模糊,但... 是否有一種技術在Jquery(或只是直的JavaScript)步驟通過HTML文件中的所有外部CSS和JS文件引用,並將引用替換爲文件的內容。Jquery將所有引用的頁面合併到根頁面中?

所以不是:

<link rel='stylesheet' id='style-css' href='http://domain.com/style.css' type='text/css' media='all' />  
<script type='text/javascript' src='http://domain.com/js/domain.js'></script> 

..它需要從這些文件中的所有東西,它堅持到HTML的渲染,使一個大的HTML文檔...?

<head> 
... 
<style type="text/css"> 
hr {color:sienna} 
p {margin-left:20px} 
body {background-image:url("images/back40.gif")} 
.etc {color:red} 
.etc {color:red} 
.etc {color:red} 
</style> 

<script type="text/javascript"> 
function message() 
{ 
alert("This is an alert"); 
} 
etc 
etc 
</script> 
</head> 
<body> 
... 
</body> 

回答

2

添加這個腳本..

$("script").each(function() { 
    var script = $(this); 
    script.load(script.attr("src")); 
    script.removeAttr("src"); 
}); 
$("link[rel='stylesheet']").each(function() { 
    var link = $(this); 
    link.after("<style type='text/css'></style>").next().load(link.attr("href")); 
    link.remove(); 
}); 

..和你可以用..

alert($("head").html()); 

測試..when這一切都完成。

(我看不出有任何理由這樣做;)

0

唯一的地方,我可以想像,這是有道理的是,如果你在服務器上運行JavaScript,使用犀牛或類似。

您可以像Sverre建議的那樣從瀏覽器中自行加載文件,而不是讓瀏覽器執行此操作,但我無法看到任何可能有用的場景 - 您擁有相同數量的後臺請求並結束同樣的結果,所以你得到的唯一的東西是爲你自己額外的工作,並可能在渲染頁面上額外的延遲。還是我誤解你的目標?

另一方面,在服務器上,它可以是有意義的,因爲瀏覽器可以通過獲取同一文檔中的所有外部資源來節省大量請求。這是你想實現的嗎?

+0

通過將多個腳本和css文件連接成兩個文件可以比緩存更好地實現最後一個。但我不認爲這是OP的結果。 – Joel 2009-11-13 01:30:03

相關問題