Что важнее: как можно меньше http-запросов или разбиение файлов для удобства разработки? - PullRequest
1 голос
/ 20 декабря 2008

Много раз, читая о веб-разработках в Интернете, я слышал, что вам следует разбить файлы javascript и css на несколько файлов.
Как разделить ваши CSS-файлы в:

  • clear.css
  • base.css
  • page_specific.css

Или, что вы даже должны разбить их на файлы, содержащие информацию о расположении, цвете и типографии.

Но не правда ли, что браузеру разрешено делать только два HTTP-запроса одновременно? Разделение этих файлов на множество приведет к целой загрузке http-запросов. Разве не лучше просто разделить их на два файла, специфичные для страницы и файл base / clear css? а затем отправить их с нагрузками кеш-заголовков?

Я понимаю, что разделение файлов проще для разработки, но разве скорость не должна быть важнее?

Ответы [ 7 ]

8 голосов
/ 20 декабря 2008

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

3 голосов
/ 20 декабря 2008

Это все преждевременная оптимизация.

Я думаю, что лучше организовать свой код наиболее удобным для вас способом, а затем найти инструмент для объединения файлов, когда вы запускаете сайт в живую. Существует целый ряд сценариев, которые сделают это за вас.

Наличие большого количества файлов на странице, безусловно, снизит производительность.

IE7 - поддержка двух одновременных HTTP-соединений на сервер, IE8 увеличивает это значение до 6 .

Я бы предположил, что конвейерная обработка , поддерживаемая в HTTP 1.1, уменьшит проблему ограничения соединения, но по умолчанию она отключена в FF и IE, в Opera она включена.

MS Ajax Control Toolkit на самом деле имеет встроенный скрипт в сочетании с элементом управления ToolkitScriptManager.

A хорошая статья MSDN , инструмент для ASP.NET и еще один .

3 голосов
/ 20 декабря 2008

Я разделил их умеренно, как требуется для нормального обслуживания; Многократные запросы HTTP 1.1 на соединение, конвейерную обработку и кэширование имеют большое значение для уменьшения чрезмерного количества файлов. Тем не менее, я не хотел бы иметь сотни маленьких педерастов. Но, 3-7 CSS-файлов, конечно. И абсолютно отдельный JS и CSS из HTML.

2 голосов
/ 20 декабря 2008

Почему бы не получить лучшее из обоих миров?

Что я делаю с моими проектами, так это храню несколько файлов CSS и JS в каталоге src, а затем создаю сценарий для объединения их вместе и сжатия (упаковки) каждого из них в «myproject.pack.js» или «myproject». .pack.css "файл. Создание ярлыка для запуска этого сценария в my IDE делает это совершенно безболезненным и дает вам преимущества, связанные с сильным комментированием и логическим разделением файлов JS и CSS, в сочетании с преимуществами единичных HTTP-запросов и минимизации кода.

1 голос
/ 20 декабря 2008

G'day,

Я собирался порекомендовать взглянуть на правила, разработанные в Yahoo Стивом Соудерсом, и, возможно, установить соответствующий плагин YSlow, но ...

Googling YSlow привел меня к интересной статье Джеффа Эттвуда на его сайте Coding Horror о настройке совета YSlow, основанного на том факте, что, как сказал Джефф

... Проблемы Yahoo не обязательно являются вашими проблемами.

Эта статья полна полезной информации по заданному вопросу и предлагает больше, чем просто "просто используйте плагин YSlow и следуйте советам".

Определенно добавленная стоимость. Спасибо, Джефф.

ура

Rob

1 голос
/ 20 декабря 2008

Я думаю, что лучше создавать отдельные файлы - это гораздо более «поддерживаемый» подход.

Но в производстве вы можете использовать какое-то решение для объединения файлов CSS (или JS) в один файл:

Автоматически объединять Javascript и CSS в один файл

0 голосов
/ 20 декабря 2008

Вот мои два цента: не имеет значения, если у вас есть 100 файлов JS / CSS, каждый весом 1 МБ. Это только замедлит первое открытие вашей страницы. После этого они будут кэшироваться на клиенте, и все будет хорошо. Так что определенно пойти на ремонтопригодность и логическое разделение.

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