Объясните применении scriptMap

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
webs
Сообщения: 13
Зарегистрирован: 2009.09.15, 22:20
Откуда: Минеральные Воды - СПб
Контактная информация:

Объясните применении scriptMap

Сообщение webs » 2010.03.20, 16:56

Не как не могу понять как использовать scriptMap.
Делаю так как описано в документации

Код: Выделить всё

$clientScript = Yii::app()->getClientScript();
        $clientScript->scriptMap=array(
            "jquery.js"=>'/js/all.js',
            "jquery.tooltip.js"=>'/js/all.js',
               .....
        );
 
но не чего не происходит
если добавляю

Код: Выделить всё


$clientScript = Yii::app()->getClientScript();
        $clientScript->scriptMap=array(
            "jquery.js"=>'/js/all.js',
            "jquery.tooltip.js"=>'/js/all.js',
            ...
        );
$clientScript->registerCoreScript('jquery');

 


то выдает подключенный файл но пустой
понимаю что делаю не правильно но что?
Последний раз редактировалось webs 2010.03.20, 17:44, всего редактировалось 1 раз.
yii мания.

Аватара пользователя
slavcodev
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

Re: Объясните применении scriptMap

Сообщение slavcodev » 2010.03.20, 17:10

Из описания, scriptMap - массив для подмены зарегистрированных файлов при рендеринге страницы

Код: Выделить всё

$clientScript = Yii::app()->getClientScript();
        $clientScript->scriptMap=array(
            "jquery.js"=>'/js/all.js',
            ...
        ); 
Этот код означает что при регистрации jquery.js ($clientScript->registerCoreScript('jquery');) в исходнки странице получите

Код: Выделить всё

<script type="text/javascript" src="/js/all.js"></script>
Жду Yii 3!

Аватара пользователя
slavcodev
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

Re: Объясните применении scriptMap

Сообщение slavcodev » 2010.03.20, 17:15

А если говорить о применении, то думаю это для того чтобы в конфиге переопределить скрипты и стили.
Например у вас в приложении регистрируются скрипты jquery и стиль form.css
В настройках

Код: Выделить всё

'components' => array(
  'clientScript' => array(
    'scriptMap' => array(
      // jquery форсировано подменяете старой версией
     'jquery.js' => '/js/jquery.oldversion.js'
      // а стиль на какой-то другой
     'form.css' => '/css/blueprint.form.css'
    )
  )
) 
Жду Yii 3!

Аватара пользователя
webs
Сообщения: 13
Зарегистрирован: 2009.09.15, 22:20
Откуда: Минеральные Воды - СПб
Контактная информация:

Re: Объясните применении scriptMap

Сообщение webs » 2010.03.20, 17:40

Не знаю возможно это баг но у меня по прежнему не работает, по прежнему выдает в подключение пустой файл all.js.
Смысл моего использования scriptMap объединение js файлов. Как упоминается в документации http://yiiframework.ru/doc/guide/ru/topics.performance , возможно использование как в конфиге так и в приложение.
yii мания.

Аватара пользователя
samdark
Администратор
Сообщения: 9201
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Объясните применении scriptMap

Сообщение samdark » 2010.03.20, 17:46

Да, вот только само объединение делается не через Yii.

Аватара пользователя
webs
Сообщения: 13
Зарегистрирован: 2009.09.15, 22:20
Откуда: Минеральные Воды - СПб
Контактная информация:

Re: Объясните применении scriptMap

Сообщение webs » 2010.03.20, 17:53

Вот так со всей документацией. Тогда что описывает вот этот док
Изображение
http://yiiframework.ru/doc/guide/ru/topics.performance
Спасибо за разъяснение .
yii мания.

Аватара пользователя
webs
Сообщения: 13
Зарегистрирован: 2009.09.15, 22:20
Откуда: Минеральные Воды - СПб
Контактная информация:

Re: Объясните применении scriptMap

Сообщение webs » 2010.03.20, 18:51

Получается для оптимизации загрузки JS файлов (если их много), другого выхода нет как саму отслеживать и склевать файлы. Получается большого толку нет в использование CClientScript.
yii мания.

Аватара пользователя
samdark
Администратор
Сообщения: 9201
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Объясните применении scriptMap

Сообщение samdark » 2010.03.20, 23:00

Нам понадобится использовать какой-либо инструмент для слияния (и, возможно, сжатия) JavaScript в один файл и записать результат в js/all.js.

То же относится и к файлам CSS.
В фреймворке есть замечательная основа, позволяющая безболезненно подключить файл после минификации и склейки.

В расширениях есть парочка, которые собственно занимаются минификацией и склейкой. Возможно, их уже довели до ума.

Аватара пользователя
webs
Сообщения: 13
Зарегистрирован: 2009.09.15, 22:20
Откуда: Минеральные Воды - СПб
Контактная информация:

Re: Объясните применении scriptMap

Сообщение webs » 2010.03.21, 00:11

Спасибо Александр. Не обратил внимание на эти слова после выше сказанного в доке. Целый день убил на это думал что где то не правильно понял, сделал вывод надо больше доверять api нежели докам.
По поводу расширений вы на верное за ExtendedClientScript он косячный(ну для других если столкнутся)
yii мания.

Аватара пользователя
jedi
Сообщения: 82
Зарегистрирован: 2010.12.01, 08:49

Re: Объясните применении scriptMap

Сообщение jedi » 2012.05.15, 14:12

Sam Dark писал(а): В фреймворке есть замечательная основа, позволяющая безболезненно подключить файл после минификации и склейки.
В расширениях есть парочка, которые собственно занимаются минификацией и склейкой. Возможно, их уже довели до ума.
Я правильно понял: к примеру есть главные js и js которые подключаются в виджетах, на определенных страницах, и их можно как-то склеивать в один файл - автоматом?
joomla->drupal->yii

Аватара пользователя
slavcodev
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

Re: Объясните применении scriptMap

Сообщение slavcodev » 2012.05.15, 14:35

Исли виджеты регистрируют js через clientScript, то да, можно склеивать.
Точнее склеивание нужно сделать самому, но можно фреймворк настроить так чтоб он подключал вместо нескольких js только один.
Жду Yii 3!

Аватара пользователя
jedi
Сообщения: 82
Зарегистрирован: 2010.12.01, 08:49

Re: Объясните применении scriptMap

Сообщение jedi » 2012.05.15, 14:40

Можно пнуть куда копать при clientScript на эти варианты:
1. склеивание нужно сделать самому
2. можно фреймворк настроить так чтоб он подключал вместо нескольких js только один.
joomla->drupal->yii

platonenko
Сообщения: 6
Зарегистрирован: 2012.10.09, 17:00

Re: Объясните применении scriptMap

Сообщение platonenko » 2012.10.10, 10:52

скажите? а можно ли шаблоном подключить алиасы для всех js и css файлов?

Ответить