2012-02-17 39 views
1

在我的網站,我傾向於使用網站的鏈接,而不是相對鏈接,如下圖所示:相對鏈接是否比網站鏈接快得多?

我用:

<link rel="stylesheet" type="text/css" href="http://www.example.com/_css/_all/stylesheet-global-styles.css" /> 

替代(相對):

<link rel="stylesheet" type="text/css" href="/_css/_all/stylesheet-global-styles.css" /> 

我使用網站鏈接的原因是因爲我使用了很多虛榮URL,例如:

example.com/test => example.com/test.php

example.com/test/1 => example.com/test.php?id=1

作爲第二個例子中多重'/'的結果,我的頁面認爲它們在網站的子目錄中,因此'相對'鏈接不起作用,除非我放入'../'。我不能這樣做,因爲這意味着基於查詢字符串是否存在以及有多少'/'。因此,我不得不使用網站鏈接來包含我所需的內容。

我知道每個請求都必須執行DNS查找,這會降低速度,但是我的問題是,如果我鏈接了5個樣式表和腳本,速度會有多慢?

+0

不知道,但不認爲這真的有差別。 – elclanrs 2012-02-17 08:14:39

+0

[性能:絕對vs.相對URL]可能的重複(http://stackoverflow.com/questions/5158444/performance-absolute-vs-relative-urls) – 2012-02-17 08:15:31

+0

@點擊討論的話題似乎有點不同 – 2012-02-17 08:19:02

回答

7

相對鏈接是否比網站鏈接快得多?

不,因爲它們是一樣的。相對鏈接僅僅是瀏覽器提供的網站管理員便利。它們也被解析爲絕對鏈接:發送到服務器的每個請求都始終包含完整的主機名和路徑。

DNS查找被緩存,因此如果系統配置正確,將不會有多個查找。

+0

完美答案,謝謝! – 2012-02-17 08:19:03

+0

儘管我會說相對鏈接在瀏覽器端添加了一點點頭,只是爲了將它們轉換爲網站鏈接,無論開銷可能如此微不足道:-) – nemesisfixx 2012-02-17 08:26:37

+0

在閱讀上述答案後,我想到了。謝謝你們,非常有幫助! :-) – 2012-02-17 08:27:50

2

它並沒有真正有所作爲。在幕後,瀏覽器無論如何都將鏈接轉換爲完整的URL。自DNS查找緩存以來,DNS查找成本最低。

恕我直言,相對鏈接更容易維護。你應該使用你認爲最方便的技術。性能不是問題。

如果您想提高性能,將樣式表合併到單個文件並縮小它會更好。腳本文件也是如此。

+0

無論如何,我這樣做,謝謝 – 2012-02-17 08:18:26

+0

我個人不認爲相對鏈接更容易維護。特別是使用URL重寫時。 – Marle1 2012-02-17 08:22:34

+0

忘了提及之前,如果你關心搜索引擎優化,不要縮小你的CSS。 Google尊重好評的CSS文件!因此,我只是縮小了我的JS – 2012-02-17 13:41:31

0

在參考文獻中使用/之前,您的路徑從您網站的根開始變爲絕對路徑 - 與使用../相反,這就像您說的親戚。

+0

我認爲,這是提問者所知道的 – HerrSerker 2012-02-17 10:50:27

+0

如果你看看他的替代(相對)解決方案,其實是絕對的,並且以/ – Marle1 2012-02-17 12:50:11

2

當您點擊瀏覽器中的鏈接時會發生什麼?
瀏覽器啓動HTTP請求。

它看起來像什麼?
如果你是http://www.example.com/path1/page1.html

,並點擊鏈接
../path2/page2.html
/path2/page2.html
http://www.example.com/path2/page2.html
的要求始終是相同的

GET /path2/page2.html HTTP/1.1 
host: www.example.com 

因此,沒有與要求的不同

所以請隨時組織根據你的喜好來修改你的鏈接。

-2

你爲什麼不這樣做

//yourapp.com/assets/css/style.css 
//yourapp.com/assets/js/jq.js 

//yourapp.com/cp/register 
//yourapp.com/cp/update_account 

//字面意思是如果SSL或者非SSL,它總是會解決。沒有 速度的差異。

reference on double slash domain //site.com and for ssl non ssl

+3

開頭的路徑感謝您的意見,但這與問題無關。請閱讀其他答案 – 2012-02-17 08:30:43

+0

這是很好的信息,但不回答 – HerrSerker 2012-02-17 10:49:55

+0

好的問題感謝您的反饋 – TheBlackBenzKid 2012-02-18 12:33:36