Здесь есть несколько вопросов. Во-первых, указанный вами метод асинхронной загрузки:
<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 для хостинга от Google? :
Что касается времени загрузки, вы на самом деле
загрузка двух скриптов - скрипт jsapi
и скрипт MooTools (
сжатая версия сверху). Так
это две связи, а не
один. По своему опыту я обнаружил, что
время загрузки было на самом деле 2-3 раза
медленнее, чем загрузка из моего собственного
личный общий сервер, даже если он
шел от гугла, а моя версия
сжатого файла было пару
К больше, чем у Google. Это даже
после загрузки файла и
(предположительно) кешируется. Так что для меня, так как
пропускная способность не имеет большого значения,
не имеет значения.
Наконец, у вас есть потенциальная проблема, связанная с тем, что браузер-параноик помечает запрос как своего рода попытку XSS. Обычно это не проблема с настройками по умолчанию, но в корпоративных сетях, где пользователь может не иметь контроля над тем, какой браузер он использует, не говоря уже о настройках безопасности, у вас может быть проблема.
Так что, в конце концов, я не вижу, чтобы я хотя бы использовал API Google AJAX для jQuery (более «полные» API - это отдельная история), за исключением публикации здесь примеров.