как использовать Google jsapi для jquery и jqueryui

#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/

Ознакомьтесь с приведенным выше для получения дополнительной информации.