2008-11-25 2 views
3

У меня есть сайт с большим количеством ссылок .js-Files; это небольшие файлы, но я хочу, чтобы мои методы были разделены по темам/функциям.jQuery/JavaScript - проблема с производительностью при наличии большого количества файлов .js-файлов?

Лучше ли хранить все методы в одном .js-файле или нет проблем с тем, что у вас есть много (~ 20-30) маленьких файлов, включая только некоторые строки?

ответ

3

Обязательно сохраните их отдельно для разработки, но вы должны рассмотреть возможность их объединения в один файл для производства.

Существует хорошее обсуждение на sitepoint.com

Для каждого из этих файлов, запрос HTTP отправляется на сервер, а затем браузер ожидает ответа перед запросом следующего файла. Ограничения (или ограничения) браузера обычно предотвращают параллельные загрузки. Это означает, что для каждого файла вы должны дождаться, когда запрос достигнет сервера , сервер для обработки запроса и ответа (включая содержимое файла ), чтобы связаться с вами. Положите в конец, некоторые из них могут сделать большой разницей времени загрузки страницы.

2

На самом деле это плохая идея иметь так много ссылочных файлов. Основной идеей проблем с производительностью является попытка максимально минимизировать HTTP-запросы (по крайней мере, на вашем рабочем сервере). Посмотрите на это http://developer.yahoo.com/performance/rules.html#num_http

0

У кого-нибудь есть умный сценарий, который может сделать это за вас? Я написал специальную задачу, которая использует компрессор YUI для минимизации моих css и js, но было бы полезно добавить к нему объединение. Как вы, парни, справляетесь с этим?

0

Я не знаю, какой каркас (если есть) вы используете на сервере, но Ruby on Rails имеет скрипт, включающий функцию, которая в зависимости от настроек (например, теста или производства) может либо создавать множество тегов сценариев (обычно тестовый режим) или создать один тег со всеми сценариями, объединенными в один (возможно, сжатый с некоторыми плагинами) файл. Я уверен, что многие другие фреймворки поддерживают что-то подобное.

ОБНОВЛЕНИЕ: Я только что вспомнил: Вы можете также вручную сжать (путем удаления пробелов и комментариев, сокращения имен переменных и т. Д.) И объединить файлы javascript и файлы CSS с помощью Yahoo! UI Library: YUI Compressor. Просто убедитесь, что ваш JavaScript правильно, прежде чем сжать его, попробуйте JSLint.

Смежные вопросы