Являются ли относительные ссылки намного быстрее, чем ссылки на сайте? - PullRequest
1 голос
/ 17 февраля 2012

На своих сайтах я обычно использую ссылки на сайты, а не относительные ссылки, как показано ниже:

Я использую:

<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 таблиц стилей и скриптов? *

Ответы [ 5 ]

7 голосов
/ 17 февраля 2012

Являются ли относительные ссылки намного быстрее, чем ссылки сайта?

нет, потому что они одно и то же.Относительные ссылки - это просто удобство для веб-мастеров, предоставляемое браузером.В конце концов, они также преобразуются в абсолютные ссылки: каждый запрос, отправляемый на сервер, всегда содержит полное имя хоста и путь.

DNS-запросы кэшируются, поэтому при правильной настройке системы не будет нескольких запросов.

2 голосов
/ 17 февраля 2012

Что происходит, когда вы нажимаете на ссылку в вашем браузере?
Браузер запускает 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 голосов
/ 17 февраля 2012

Это на самом деле не имеет значения.За кулисами браузеры в любом случае преобразуют ссылки в полные URL-адреса.Стоимость поиска DNS минимальна, так как поиск DNS кэшируется.

ИМХО, относительные ссылки легче поддерживать.Вы должны просто использовать ту технику, которую считаете наиболее удобной.Производительность здесь не проблема.

Если вы хотите повысить производительность, вам было бы гораздо лучше объединить свои таблицы стилей в один файл и свернуть его.То же самое касается файлов сценариев.

0 голосов
/ 17 февраля 2012

Почему бы вам не сделать это

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

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

// буквально означает, что если SSL или не-SSL, он всегда разрешается. нет разница в скорости тоже нет.

ссылка на домен с двойной косой чертой //site.com и для ssl non ssl

0 голосов
/ 17 февраля 2012

При использовании / перед ссылкой ваш путь становится абсолютным, начиная с корня вашего сайта - в противоположность использованию ../, как вы сказали относительно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...