#jquery #jsapi
#jquery #jsapi
Вопрос:
Сегодня я выяснил, что другой «стандартный способ» включает jquery и jqueryui:
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
Есть другой способ, с помощью Google jsapi:
<script src="//www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.4.2");
google.load("jqueryui", "1.7.2");
$(function() { $( document ).tooltip(); });
</sciprt>
Является ли метод jsapi лучше?
Поскольку я пробовал метод jsapi, но, похоже, он работает только с jquery и не работает с jqueryui, на самом деле всплывающая подсказка не отображается. Что не так? Должен ли я также включать jquery css? или, может быть, мне нужен ключ?
Комментарии:
1. Поскольку вы используете jsapi, и он загружает javascript асинхронным способом, когда вы пытаетесь использовать jQuery, нет никакой гарантии, что jquery и jQueryUI будут загружены. При использовании тегов скрипта ничего не будет выполняться, пока файл не будет загружен. Существует опция, с
load
помощью которой вы можете инициировать обратный вызов, чтобы вы могли выполнить свой код при загрузке запрошенной вами библиотеки.2. Не могли бы вы опубликовать полный пример того, как я могу использовать jsapi для загрузки всплывающей подсказки jqueryui? я пробовал много раз, но кажется, что jqueryui не работает..
3. Из вашего примера я не вижу причин использовать Google API. После прочтения документации, представленной в ответе ниже, показано, как использовать обратный
google.load("visualization", "1", {"callback" : pageLoaded});
вызов, но здесь у вас есть 2 библиотеки, и вы должны убедиться, что jquery загружен до jquery UI, что означает, что обратный вызов jquery вызовет jquery UI. Но, как я уже сказал, придерживайтесь<script>
тегов в вашем<head>
, если все, что вы хотите, это загрузить эти 2 библиотеки.
Ответ №1:
Идея заключается в том, чтобы улучшить загрузку вашей страницы. Таким образом, рендеринг вашей веб-страницы не блокируется при загрузке jquery и jqueryui. Вам также нужно будет загрузить свой css, я думаю, вам нужно будет сделать это встроенным, поэтому вам все равно понадобится тег link для загрузки jqueryui css.
Должен признать, что я на самом деле не использовал Google load api, но, похоже, он делает то же самое, что и requirejs, т.Е. Динамически загружает скрипты на стороне клиента. Это было бы полезно, если бы вы хотели программно загружать разные языки. Возможно, если бы у вас был сценарий, в котором, возможно, вам не нужно загружать jqueryui в некоторых условиях.
https://developers.google.com/loader/
Ознакомьтесь с приведенным выше для получения дополнительной информации.