Тут є кілька питань. По-перше, вказаний вами метод асинхронного навантаження:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.3.1');
google.setOnLoadCallback(function() {
// do stuff
});
</script>
має пару питань. Теги сценаріїв призупиняють завантаження сторінки під час їх отримання (якщо необхідно). Тепер, якщо вони повільно завантажуються, це погано, але jQuery невеликий. Справжня проблема вищезазначеного методу полягає в тому, що оскільки завантаження jquery.js відбувається на багатьох сторінках самостійно, вони закінчать завантаження та візуалізацію перед завантаженням jquery, тому будь-який стиль jquery, який ви робите, буде помітною зміною для користувача .
Інший спосіб:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
Спробуйте кілька простих прикладів, наприклад, складіть просту таблицю і змініть фон комірок на жовтий за допомогою методу setOnLoadCallback () проти $ (document) .ready () зі статичним завантаженням jquery.min.js. Другий метод не матиме помітного мерехтіння. Перша заповіт. Особисто я думаю, що це не гарний досвід користувача.
Як приклад, запустіть це:
<html>
<head>
<title>Layout</title>
<style type="text/css">
.odd { background-color: yellow; }
</style>
</head>
<body>
<table>
<tr><th>One</th><th>Two</th></tr>
<tr><td>Three</td><td>Four</td></tr>
<tr><td>Five</td><td>Six</td></tr>
<tr><td>Seven</td><td>Nine</td></tr>
<tr><td>Nine</td><td>Ten</td></tr>
</table>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.1");
google.setOnLoadCallback(function() {
$(function() {
$("tr:odd").addClass("odd");
});
});
</script>
</body>
</html>
Ви (повинні) бачити таблицю, а рядки жовтіють.
Друга проблема методу google.load () полягає в тому, що він містить лише обмежений діапазон файлів. Це проблема для jquery, оскільки це дуже залежить від плагіна. Якщо ви спробуєте включити плагін jquery з <script src="...">
тегом, і google.load()
плагін, ймовірно, не вдасться із повідомленнями "jQuery не визначено", оскільки він ще не завантажився. Я насправді не бачу цього шляху.
Третя проблема (з будь-яким методом) полягає в тому, що вони є одним зовнішнім навантаженням. Якщо припустимо, що у вас є додаткові додатки та власний код Javascript, вам потрібно отримати як мінімум два зовнішніх запити для завантаження Javascript. Вам, мабуть, краще отримати jquery, усі відповідні плагіни та власний код та помістити його в один мінімізований файл.
З чого слід використовувати API Ajax Libraries від Google для хостингу? :
Що стосується завантаження разів, ви фактично завантажуєте два сценарії - сценарій jsapi та сценарій mootools (стисла версія зверху). Отже, це два з'єднання, а не один. На моєму досвіді я виявив, що час завантаження насправді в 2-3 рази повільніше, ніж завантаження з мого особистого спільного сервера, навіть якщо він надходив від Google, а моя версія стислого файлу була на пару K більше, ніж у Google. Це навіть після завантаження файлу та (імовірно) кешування. Тож для мене, оскільки пропускна здатність не має великого значення, значення не має значення.
Нарешті, у вас є потенційна проблема параноїдального браузера, який позначає запит як якусь спробу XSS. Зазвичай це не проблема з налаштуваннями за замовчуванням, але в корпоративних мережах, де користувач може не мати контролю над тим, який браузер він використовує, не кажучи вже про налаштування безпеки, у вас можуть виникнути проблеми.
Отже, врешті-решт, я не можу насправді бачити, як я використовую прикладний API AJAX Google для jQuery (принаймні "повніші" API-файли є різною історією), окрім публікацій прикладів тут.
src
на простіший / безпечніший / швидший синтаксис, який ви використовуєте зараз? Ваша відповідь стала в основному канонічною, і обидві зміни допоможуть людям швидко отримати те, до чого вони прийшли.