Dojox.gfx, размещенный в Google

Я использую следующий HTML-код для загрузки додзё с хостинга Google.

<script src = "http://www.google.com/jsapi"></script>
<script type = "text/javascript">google.load("dojo", "1.1.1");</script>
<script type = "text/javascript">
dojo.require("dojox.gfx");
...

Эта ошибка находится в строке requre с ошибкой, такой как dojox.gfx is undefined. Есть ли способ заставить это работать, или Google не поддерживает расширения dojox?

В качестве альтернативы, есть ли еще один общий хост, который я могу использовать для стандартных выпусков додзё?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
1 259
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я считаю, что Google становится пространством имен для ваших импортированных библиотек. Попробуйте: google.dojo.require.

Ой! И, как указано ниже, не забудьте использовать google.setOnLoadCallback вместо прямого вызова функции.

Лучше спросить: а зачем вам это нужно? Если вы разрабатываете на своем локальном хосте, просто используйте относительный путь, если вы разрабатываете на сервере с выходом в Интернет - прикрепите к нему файлы dojo.

Также - убедитесь, что вы не нарушаете правила та же политика происхождения.

Использование внешней версии на данный момент упрощает обмен прототипами отдельных файлов с другими пользователями. К тому же Google продал мне свой code.google.com/apis/ajaxlibs/documentation

Peter Shinners 18.09.2008 09:09
Ответ принят как подходящий

В отличие от того, когда вы ссылаетесь на файлы .js непосредственно из тега <script> (обратите внимание, что google js api также поддерживает это, см. здесь), google.load не является синхронным. Это означает, что когда ваш код достигнет google.load, он не будет ждать полной загрузки dojo, чтобы продолжить синтаксический анализ; он перейдет прямо к вашей строке dojo.require и там не будет работать, потому что объект додзё будет неопределенным.

Решение (если вы не хотите использовать прямой тег <script>) состоит в том, чтобы заключить весь ваш код, который ссылается на dojo, в функцию Начните и установить его как обратный вызов, выполнив:

google.load("dojo", "1.1.1", {callback: start});

function start() {
    dojo.require("dojox.gfx");
    ...
}

или же

google.setOnLoadCallback(start);
google.load("dojo", "1.1.1");

function start() {
    dojo.require("dojox.gfx");
    ...
}

dojox практически не поддерживается и будет удален из dojo-2. С большинством виджетов в dojox есть серьезные проблемы, но хороших только несколько.

ИМХО додзё должно быть самостоятельным, потому что всегда есть вещи, которые нужно перезаписать - например, вам нужно какое-то исправление в этом dojox.gfx.

Другие вопросы по теме