Нужно ли загружать ресурсы через CDN? - PullRequest
0 голосов
/ 22 февраля 2020

Я новичок в вебпаке, и недавно я обнаружил, что еще более медленно упаковывать мои ресурсы Jquery и bootstrap в связку. js по сравнению с Jquery и Bootstrap метод загрузки CDN

Хотя webpack делает мой ресурс Jquery или Bootstrap меньшим и увеличивает время загрузки веб-страниц, но он быстрее использует Jquery или Bootstrap CDN в моей ситуации.

Я думаю, может быть, мой Linux сервер не имеет хорошей производительности.

Чтобы загрузить ресурс с моего собственного обычного сервера, используйте CDN для загрузки с публичного сервера c лучше, если у вас нет хорошего веб-сервера, верно?

1 Ответ

1 голос
/ 24 февраля 2020

Нужно ли связывать обычно используемые библиотеки (например, jquery, bootstrap, et c), во многом зависит от следующих факторов (может быть, не полный список):

Технически следующие два фактора являются ключевыми (возможно, это не полный список):

Кэш браузера : браузер имеет тенденцию кэшировать файлы, которые использует сайт, так что производительность сайта в последующем увеличивается. Хотя это зависит от того, как установлены HTTP-заголовки для файловых запросов JS (Cache-control, No-cache, Etag, Expires, Pragma и т. Д. c), большинство сайтов разрешают такое кэширование в ущерб производительности.

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

Учитывая эти факторы, мне приходят на ум два следующих подхода (широко, не всеобъемлющие):

Популярность библиотек и CDN used : популярная библиотека из популярного CDN, вероятно, уже кэшируется браузером, когда пользователь просматривает различные сайты. Библиотеки CDN также широко кэшируются по всему миру. Это значительно улучшит производительность вашего сайта.

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

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

Надеюсь, это поможет!

...