2011-01-06 2 views
3

Я использую jQuery для проекта и, возможно, дюжину дополнительных плагинов/аддонов jQuery (подвыпивших, унифицированных, jeditable, fancybox и т. Д. И т. Д.).Следует ли загружать только JavaScript, когда это необходимо?

Как передовая практика, следует ли загружать их только тогда, когда страница нуждается в них?

Или мне лучше просто загружать их с самого начала, чтобы они находились в кеше браузера, и просто нужно сделать это вместо того, чтобы программно включать код, когда это необходимо?

ответ

1

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

0

В целом вы должны загружать только те сценарии, которые требуются на странице.

Каждый добавленный вами файл является дополнительным вызовом на ваш сервер (при условии, что он не уменьшает), добавив нагрузку и трафик.

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

Может быть, проще разместить все их на каждой странице, однако все ли люди перейдут на все страницы и будут нуждаться во всех сценариях?

Это компромисс, и вам нужно протестировать как ваш сервер, так и клиентов, чтобы увидеть, что лучше всего работает в вашей ситуации.

+0

Что касается дополнительных вызовов, я могу просто кэшировать весь код в один файл .js, если это необходимо ..., что полностью исключает дополнительные вызовы. – Shpigford

+0

@Shipgford - правда, минимизация помогает, но у вас все еще есть накладные расходы, и браузер все еще должен разбирать все это. – Oded

+0

Я буду второй Одед здесь - вы должны всегда загружать то, что вам нужно, и ничего больше. Даже если вы объедините его в один файл, который пользователь может кэшировать, в чем смысл отправлять больше данных, чем вам нужно? – girasquid

0

Зависит от групп, на которые вы ссылаетесь, но да, если это что-то вроде 5 скриптов, просто соедините их вместе с запросом minify и сделайте с ним. Затем он кэшируется и больше не нужно проверять серверы.

Вы можете увидеть, что я сделал here с этим:

<script type="text/javascript" src="http://www.tylerbel.com/workspace/min/f=workspace/js/jquery-1.4.2.min.js,workspace/js/jquery-ui-1.8.5.custom.min.js,workspace/js/main.js"> 
0

Для меня я обнаружил, что если вы используете PHP, вы можете легко определить, что вы хотите назвать. Что я делаю, так это то, что у меня есть предопределенный заголовок, который вызвал один js-файл, который я создал php. В файле php js у меня есть каждый скрипт под сеансом, чем отключение сеанса внутри оператора if. Затем на странице, которую я использую, вызывает заголовок, который я помещаю сверху. Предположим, что $ _SESSION ['chatjs'] = '1'; ... На php js я бы использовал if (isset ($ _ SESSION ['chatjs'])) {include ('whatever.js); снята с охраны ($ _ SESSION [ 'chatjs']); }, который помог ускорить мой сайт со второго времени загрузки до 0,035 времени загрузки на страницу, дать или принять в зависимости от того, что все на странице.

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