2010-08-05 52 views
1

此問題是this question的後續問題。包含JS文件的替代方法

如果有些瀏覽器下載JS文件,即使用戶禁用了JS,那麼使用JS包含JS文件以確保用戶不會被迫不必要地下載JS是否合理?

例如:

function inc(filename){ 
    var body = document.getElementsByTagName('body').item(0); 
    script = document.createElement('script'); 
    script.src = filename; 
    script.type = 'text/javascript'; 
    body.appendChild(script); 
} 

我發現上面的代碼here

這段代碼有什麼缺點嗎?我還沒有測試它,以確保它能正常工作,但它看起來非常簡單。

我試圖避免有多個HTTP請求加上明顯不想要的用戶強制的代碼的下載足跡。

此外,如果用戶在最初加載網站後啓用JS,這將如何工作?

這是否甚至重要?值得關注嗎?

回答

7

我要回踩這個問題:

這是否即使有關係嗎?值得關注嗎?

不,它不是:)誰已經禁用了JavaScript應該是非常少數(在大多數情況下),用戶的百分比,它真的不值得惹所有用戶的負載保存幾個HTTP請求(應緩存),並保留<script>標記。

而且,看看前面的問題的accepted answer,在最初的測試3/4的瀏覽器不下載了,所以真的,這是 Chrome瀏覽器(和可能IE),其他瀏覽器已經在這裏保存請求。

更新:我只是在IE8的測試,它下載任何包含的JavaScript被禁用時,我沒有安裝測試任何其他版本的時刻,但這是真正的在IE8至少。

+0

+1。除非你有一個非常特定的觀衆記住你正在開發的內容,否則沒有啓用JS的瀏覽器數量可以忽略不計,不值得做任何特殊的表演工作。 – 2010-08-05 02:09:08

+0

如果你這樣做是爲了防止不支持非JS的瀏覽器下載,你就對了。但是我可以看到使用按需下載,如果你有一個頁面的JS驅動頁面,讓我們說10個標籤,每個標籤需要一個特定的JS塊。不需要一次加載全部10個選項卡,而是按需加載(當用戶單擊該選項卡時)。 – 2010-08-05 02:21:47

+0

@Gert G:是的,絕對的,但就像他們說的那樣,又是另一回事了。至少YUI(可能還有其他)爲按需加載JS模塊提供了複雜的基礎設施,如果這是你想要的(這與這個問題的主旨完全不同)。 – 2010-08-05 03:34:59