2011-03-25 45 views
1

我已經與十幾個廣告網絡合作過,他們都希望您在網站上嵌入廣告。嵌入廣告是否會減慢我的網站?

<html> 
<body> 
    <div id="ad"> 
    <script type="text/javascript" src="ad.js" /> 
    </div> 
    <div> 
    The rest of my site 
    </div> 
</body> 
</html> 

我個人的一些代碼等待的DOMContentLoaded事件和window.onload事件的一些等待。如果這些事件因廣告而延遲,我的網站對用戶而言顯得很慢。

當HTML被解析時,DOM構造是否停止,因爲它碰到了<script>標記?在繼續構建DOM之前,瀏覽器會在加載ad.js時等待嗎?如果是這樣,DOMContentLoaded將被延遲。

廣告在腳本標籤的位置插入圖像。如果圖像需要很長時間才能加載,window.onLoad會被延遲嗎? window.onLoad是否僅僅延遲了已經嵌入到我的HTML中的靜態圖像,還是延遲了由腳本標記插入的動態圖像?

回答

0

首先,爲什麼不在加載dom後加載廣告?您可以正常加載網頁,然後綁定注入廣告的功能。

此外,請查看<script>標記上的defer屬性。設置它會使頁面執行中的廣告優先級低於其他正在加載的腳本和資源。儘管這不是一個跨瀏覽器的解決方案,但它不被忽視。

http://www.websiteoptimization.com/speed/tweak/defer/

+0

我以爲我試圖注入腳本標籤後加載,它沒有奏效。我有一個印象,腳本標籤附加到'body'的末尾。通過在HTML解析期間運行腳本標記,將其插入到正確的位置。 – JoJo 2011-03-26 07:42:22

+0

你有關於如何注入腳本標籤的例子嗎?如果它在解析期間或之後加載,它確實不應該有任何區別。在html解析之後,你甚至可以將它附加到head標籤。某些使用模式(如JSONP)依賴於這個確切的技巧。但請記住,無論何時加載腳本標記,它都會阻止其他資源(例如XMLHTTPRequests),直到加載完成。 – capi 2011-03-26 12:23:52

0

是的,它會被延遲,因爲JavaScript執行是一個阻止操作。您可以嘗試將您的廣告放在HTML的底部,然後通過絕對定位在CSS中移動它們,甚至可以用自己的一些JS移動它們。

+1

將腳本放在底部仍然會延遲DOMContentLoaded事件,因爲包含廣告的DIV在腳本加載並執行之前不會關閉。我對嗎? – JoJo 2011-03-25 23:00:33

0

放置腳本之前</body>不會減慢你的頁面加載。你的頁面仍然會正常加載。所有<script>放在</body>之前,並且在您的HTML將最後加載後。這是雅虎推薦它的方式。閱讀雅虎博客加速您的網站http://developer.yahoo.com/performance/rules.html