Для когось це може бути очевидно, але мені було цікаво: чому я повинен залежати від сервера Google для розміщення jQuery для мого сайту?
Це лише тому, що швидше завантажується?
Для когось це може бути очевидно, але мені було цікаво: чому я повинен залежати від сервера Google для розміщення jQuery для мого сайту?
Це лише тому, що швидше завантажується?
Відповіді:
Це відбувається тому:
Існує кілька сценаріїв, коли ви не хочете використовувати jQuery з CDN Google:
Коли ви створюєте інтранет-додаток, де веб-сервер розміщується в тій же мережі, що і клієнти. Якщо ви використовуєте CDN jQuery від Google, ви будете телефонувати в Інтернет, а не через веб-сервер у локальній мережі. Це збільшує пропускну здатність для вашої організації та повільніше.
Коли ви хочете запустити свою програму в автономному режимі . (Досить пов’язане з першим випуском) Якщо вам потрібно працювати над середовищем розробки (керується, наприклад, з Bower ), можливо, вам доведеться мати можливість працювати з додатком без підключення до Інтернету (тобто: у поїзді :)
Коли вам потрібно налаштувати його . Наприклад, якщо ви використовуєте Grunt для створення бібліотеки для використання лише певних модулів або встановлення імені AMD
Коли ви розміщуєте сторінки через SSL, для яких потрібен jQuery. Ви повинні обслуговувати JavaScript через SSL, а також свою сторінку, щоб уникнути проблем із безпекою та попереджень.
Також Microsoft розміщує jQuery на своєму CDN. Це ще один вибір, порівнянний з використанням jQuery, розміщеного Google.
src="//ajax.googleapis.com/..."
, працює.
Це дослідження по TJ VanToll переконали мене в тому , що це краще зчепити JQuery з іншими скриптами , а не завантажити його з CDN.
Причина - затримка, пов’язана із завантаженням jQuery на мобільних пристроях:
"У 2012 році середній час RTT у мобільній мережі в Сполучених Штатах становив 344 мс. І це 344 мс застосовується не лише до кожного запиту HTTP - який зараз становить середня веб-сторінка 93, - але і для кожного пошуку DNS та TCP-з'єднання ... Незважаючи на те, що середні RTT покращуються, є лише невеликі додаткові вигоди, оскільки нинішні мережі знаходяться в межах невеликого коефіцієнта теоретичної межі, продиктованої фізикою ".
Він також цитує цю публікацію від Steve Souders, яка показує, чому ви насправді навряд чи отримаєте перевагу кешування від використання CDN:
"Через фрагментацію постачальників CDN, версій jQuery та використання протоколу (http проти https) шанси отримати кеш-пам'ять CDN є надзвичайно низькими - а завантаження із зовнішнього домену має потенціал виконати не один, а три кругові поїздки (пошук DNS, з'єднання TCP та HTTP GET). "
Найбільша користь - це кешування. Теорія полягає в тому, що якщо відвідувач відвідував сайт, який завантажував їх бібліотеки JavaScript, скажімо, jQuery, наприклад, з Google CDN, тоді, коли вони відвідують ваш веб-сайт, бібліотека вже знаходиться в кеші браузера цього користувача і не доведеться її завантажувати знову . Це теоретично звучить чудово.
Переваги, які поділяються тут і в інших місцях, всі теоретичні. Щойно натрапив на поглиблений аналіз використання CDN та якщо він забезпечує очікувані переваги від продуктивності. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
Основна причина НЕ дозволяти Google розміщувати ваш jQuery, про який багато людей не замислюються, - це те, що він не завантажиться, якщо ви перебуваєте в Китаї. Він заблокований разом із багатьма іншими сценаріями, шрифтами тощо ..., розміщеними в CDN Google. Якщо вам потрібно охопити китайську аудиторію, найкраще завжди використовувати резервний сервер, розміщений на власному сервері. Китай APIS заблокований у Китаї
Тут є кілька хороших відповідей на тему "Чому ти повинен ..." та "Чому ти не повинен ..."
Я просто хочу додати список альтернатив Google, якщо ви хочете завантажити jQuery з CDN.
Підсумовуючи це, ви в основному покращуєте загальну ефективність веб-сайту / програми.
Отримавши CDN разом із службовим працівником, ви можете завантажити CDN один раз упродовж життя клієнта, а не кожен раз, коли ви оновлюєте код.