Трябва ли да свържа javascript рамка с моето приложение или да използвам публичен CDN?

Преди около две или три години бих обобщил отговора на това като.

  • компилирайте всички js в един файл и минимизирайте.
  • съобразете всички css в един файл и минимизирайте.
  • зареждане на външни скриптове async.
  • задайте заглавки за управление на кеша в далечното бъдеще.
  • URL адреси на активи за пръстови отпечатъци за невалидност.
  • използвайте свой собствен CDN.

Сега приложенията изглеждат много по-тежки на javascript. И видях доказателства, че браузърите могат да отварят повече паралелни връзки.

Коя в момента е най-добрата практика за ефективност в мрежата при включване на статични активи.

Когато използвам рамка като angular, backbone или ember, трябва ли да обвържа рамката с моето приложение или да използвам публичен cdn (като googles https://developers.google.com/speed/libraries/) и просто да обединя кода на приложението си?


person errm    schedule 30.01.2015    source източник


Отговори (1)


Бих казал, че отговорът е... зависи. Оценявам, че това не е много полезно, така че ще разширя.

  • Ако пишете вътрешно (интранет) приложение, би било по-добре и по-ефективно да обедините рамката във вашето приложение. Тогава вашите потребители ще трябва само да изтеглят файлове от локалната мрежа. Ако имате множество вътрешни приложения, използващи една и съща рамка, вътрешният CDN би бил добър вариант.
  • Ако е малко вероятно вашите потребители да имат достъп до други приложения, които използват същата рамка, тогава няма да получите никаква полза от CDN (освен ако не са в част на света, различна от вашия сървър), но няма и реални недостатъци.
  • Ако искате автоматично да актуализирате до най-новата версия на библиотека (99 пъти от 100 това е лоша идея), можете да използвате CDN, за да предоставите автоматично текущата версия.
  • Ако имате проблеми с честотната лента, използването на CDN може да облекчи това, тъй като вашите потребители ще изтеглят файловете от някой друг.
  • Ако вашето приложение js ще се променя често, тогава, ако обедините всички js заедно, ще принудите повторно изтегляне на всички библиотеки на рамката. Очевидно има прости начини да се заобиколи това, като групиране на библиотеки отделно.

За външни приложения бих казал, че използването на CDN е правилният избор.

person DoctorMick    schedule 30.01.2015
comment
Бихте ли казали, че има някакви плюсове в използването на един от публичните cdn за тези библиотеки, а не нещо като cloud-front или cache-fly - person errm; 31.01.2015
comment
Вероятният капак на файла, който вече е кеширан от популярна кутия, е много по-висок, бих си помислил. - person DoctorMick; 31.01.2015