Файл JavaScript зависит от блока кода JavaScript в Yii2 (для конфигурации dojo)

Я пытаюсь зарегистрировать файлы додзё javascript в Yii 2.0.
Согласно документации dojo, блок кода для конфигурации dojo должен быть загружен до фактического dojo.js, чтобы его можно было рассмотреть. Однако в выводе HTML мой пользовательский код javascript всегда загружается после dojo.js.

Это мой код:

$this->registerJs('dojoConfig="async:true,isDebug:true";', $this::POS_HEAD,'dojoconfiguration');
$this->registerJsFile('/dojo_toolkit/dojo/dojo.js', ['depends' => [\yii\web\JqueryAsset::className()], 'position' => yii\web\View::POS_HEAD]);

А в HTML это выглядит так:

<script src="/dojo_toolkit/dojo/dojo.js"></script>
<script type="text/javascript">dojoConfig="async:true,isDebug:true";</script>

Любой совет?

3

Решение

Для той же позиции Yii2 всегда сначала помещает встроенные сценарии, а затем фактические внешние файлы. Таким образом, вы не можете это исправить, добавив их обоих в <head>,

Лучше всего дать registerJsFile() позвонить POS_END загрузить его в самом конце. Он все еще будет загружен до document.ready() звонок сделан.

Таким образом, вы можете быть уверены, что конфигурация в заголовке анализируется перед загрузкой. Наихудший сценарий, который вы можете использовать POS_BEGIN загрузить его сразу после открытия тега body, но поскольку загрузка javascript блокируется, я постараюсь избежать этого.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]