2017-09-25 100 views
0

我的網站加載具有相對協議外部JavaScript,即相對或絕對協議是否影響dns預取性能?

<script type="text/javascript" src="//somewhere.com/script.js"></script> 

(注:script標籤是異步注射頁面加載後獲取腳本

但我的DNS預取標籤絕對協議,即

<link rel="dns-prefetch" href="http://somewhere.com/script.js"> 

因此,當網站通過HTTPS加載時,預取爲http,腳本爲https。 Chrome控制檯中沒有關於此的警告。

除了保持這些一致,是否有任何性能改善dns預取鏈接到相對協議的好處?

我以前想過的一點是,因爲所有的dns預取都假設是從主機名解析IP,所以在預取中使用http實際上可能是有益的,以避免需要執行SSL握手。但是這裏假定dns-prefetch鏈接指示瀏覽器發出網絡請求,我不確定發生了什麼。

+0

無論哪種方式都不會有握手。 DNS沒有這種東西。 – captncraig

+0

預取甚至不需要像立即加載的腳本那樣的東西。它更多的是用戶交互後發起的事情,比如鏈接,或者您將來可能在某個時候吸引的內容。 – captncraig

+0

'// some.script.js'不是相對協議URL。 '// SERVER_NAME/some.script.js'就是這樣一個協議的URL。 –

回答

1

以下三行,當瀏覽器支持,做同樣的:

<link rel="dns-prefetch" href="http://SERVERNAME/some.script.js"> 

<link rel="dns-prefetch" href="https://SERVERNAME/some.script.js"> 

<link rel="dns-prefetch" href="//SERVERNAME/some.script.js"> 

他們都嘗試從DNS解析請求和AAAA資源記錄,如果這樣的信息不存在在瀏覽器名稱服務緩存中。

因此,表演是相同的。