Разве внешние файлы JavaScript не приводят к увеличению клиентской обработки? - PullRequest
0 голосов
/ 12 октября 2010

Я думал о внешних файлах HTML, и мне пришло в голову, что если я сгруппирую функции из нескольких страниц HTML, в одном JavaScript это приведет к дополнительной обработке на стороне клиента.

По сути, я хотел бынекоторое представление о том, правильно ли это.

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

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

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

Спасибо, Грей

Ответы [ 3 ]

1 голос
/ 12 октября 2010

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

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

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

Возможно, было бы разумно разделить вашу библиотеку JS на куски, если они полностью разделены на каждые четыре страницы и действительно огромны - это будет зависеть от структуры вашего скрипта. Но чаще всего предпочтительнее иметь один внешний файл и, следовательно, один чуть больший запрос в первый раз, но ни один из них впоследствии.

По вашему подвопросу взгляните на вкладку "Net" в Firebug. Он покажет вам, какие ресурсы он загружает и откуда и сколько времени занимает их обработка.

1 голос
/ 12 октября 2010

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

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

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

1 голос
/ 12 октября 2010

Если у меня есть файл из 200 строк, и я делю его на 5 файлов по 40 строк в каждом, общее количество строк остается равным 200 НО.помните, что если я вытащил файлы 1-4 на предыдущей странице, мне нужно только вытащить файл 5, поскольку 1-4 находятся в моем кэше.Кроме того, большинство современных браузеров готовы обрабатывать эти запросы, поэтому вместо загрузки одного большого файла для одного файла я получаю 5 потоковых загрузок меньших файлов.как они справляются и над моей головой о точной реализации.

...