зачем assets
зачем assets
Уже довольно долго имею дело с yii, но так и не понял зачем регистрировать js файлы? В интернетах ничего кроме того как регистрировать ресурсы (это я умею) и общих слов об удобстве данного подхода не нашел. В чем удобство и польза? Дублирования кода и отсутствие синхронизации многофайловых js решений - сомнительные удобства, на мой взгляд...
Re: зачем assets
А чем JS не ресурс?
Re: зачем assets
ресурс. Вопрос в чем плюсы кроме лишних букв в программе?
Re: зачем assets
вы можете хранить js файлы в папке с модулем, которая недоступна для вебсервера, например в protected/vendor
Re: зачем assets
Пример 1: Есть у меня виджет комментариев, использующий скрипт protected/modules/comments/assets/comments.js. Папка protected закрыта (или вообще перемещена выше public_html). Как мне его в самом модуле без регистрации ресурсов подключить?
Пример 2: Есть в портфолио виджет-слайдер, подключающий jQuery и плагин слайдера. Есть визуальный редактор, подключающий jQuery и плагин редактора. Есть виджеты Yii, подключающие jQuery. Если записывать в каждом виджете <script src="/js/jquery.js">, то он нечаянно подключится два раза, если на странице окажутся два виджета, а если registerCoreScript('jquery') – подключится только один раз и будет помещён прямо в <head>, в скольких представлениях его не записывай. Автоматическая защита от повторений и размещение прямиком в <head>.
Если файлы объёмные, то их и фрагменты JS кода из виджета можно зарегистрировать в POS_END, то есть перед закрывающим </body> (как это делают CGridView и т.п.), чтобы страницы визуально открывались быстрее.
Плюсы: защита от дублирования, помещение прямо в <head> или перед </body>.
Пример 2: Есть в портфолио виджет-слайдер, подключающий jQuery и плагин слайдера. Есть визуальный редактор, подключающий jQuery и плагин редактора. Есть виджеты Yii, подключающие jQuery. Если записывать в каждом виджете <script src="/js/jquery.js">, то он нечаянно подключится два раза, если на странице окажутся два виджета, а если registerCoreScript('jquery') – подключится только один раз и будет помещён прямо в <head>, в скольких представлениях его не записывай. Автоматическая защита от повторений и размещение прямиком в <head>.
Если файлы объёмные, то их и фрагменты JS кода из виджета можно зарегистрировать в POS_END, то есть перед закрывающим </body> (как это делают CGridView и т.п.), чтобы страницы визуально открывались быстрее.
Плюсы: защита от дублирования, помещение прямо в <head> или перед </body>.
Re: зачем assets
anton44eg писал(а):вы можете хранить js файлы в папке с модулем, которая недоступна для вебсервера, например в protected/vendor
это понятно. Папку с js в корень сайта и всех делов..ElisDN писал(а):Пример 1: Есть у меня виджет комментариев, использующий скрипт protected/modules/comments/assets/comments.js. Папка protected закрыта (или вообще перемещена выше public_html)
точно так же без регистрации прописываем скрипт перед </body>ElisDN писал(а):Если файлы объёмные, то их и фрагменты JS кода из виджета можно зарегистрировать в POS_END, то есть перед закрывающим </body> (как это делают CGridView и т.п.), чтобы страницы визуально открывались быстрее.
по хорошему, браузер загрузит скрипт только один раз. могу конечно ошибаться.ElisDN писал(а):Если записывать в каждом виджете <script src="/js/jquery.js">, то он нечаянно подключится два раза
Т.е. плюс получается только в том что js и php связанные функционалом можно размещать в одной папке?
При этом имеем дублирование кода с необходимостью регулярной чистки assets в процессе разработки(если мы регистрируем целиком папку скриптов).. Сейчас наблюдается тенденция максимального расширения функционала клиентской части.. а тут какая-то магия с js..
Ладно пусть регистрация - это правильно. Что посоветуете, хочу я сделать себе расширение для tinymce, весь скачанный у разработчика js размещать в папке с расширением и регистрировать как положено?
- flashimage
- Сообщения: 1517
- Зарегистрирован: 2011.01.23, 12:43
Re: зачем assets
Ошибаетесь. Все хендлеры евентов будут продублированны - это вообще беда.ads писал(а):по хорошему, браузер загрузит скрипт только один раз. могу конечно ошибаться.
Делайте как положено, не привязывайте расширение к текущему проекту. И сопровождать такое сложно.ads писал(а):Что посоветуете, хочу я сделать себе расширение для tinymce, весь скачанный у разработчика js размещать в папке с расширением и регистрировать как положено?
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Re: зачем assets
сам,не понимаю зачем эти assets нужны,только все усложняют
в CI 2 ничего подобного не было
в CI 2 ничего подобного не было
Re: зачем assets
Вы не верно думаете - это не просто поместить в одну папку, а поместить, чтобы эти скрипты были доступны, т.к. при использовании расширений эти скрипты не доступны, т.к. находятся за пределами корневой папки.Т.е. плюс получается только в том что js и php связанные функционалом можно размещать в одной папке?
Еще кстати, если расширить класс публикации, то можно попутно минифицировать стили и скрипты. Я сам до этого так и не дошел))
Re: зачем assets
Вот об этом я и забыл спросить.. Если есть возможность сжимать эти ресурсы то смысл сразу становится очевидным. Вот только как этой возможностью пользоваться?twix писал(а):то можно попутно минифицировать стили и скрипты.
Re: зачем assets
Я еще сам не дошел до этого)) Поэтому с удовольствием послушаю советов.
Re: зачем assets
Прямым текстом по смыслу обсуждения: не зачем и что дает, а потому что. Потому что расширение.
Re: зачем assets
Могут ли в папке assets лежать php Файлы?
в одной из CMS Увидел как в assets копируются php файлы assets\dac85abf\ckeditor_php5.php
Так может быть?
Разве они таким образом не становятся доступны всем?
в одной из CMS Увидел как в assets копируются php файлы assets\dac85abf\ckeditor_php5.php
Так может быть?
Разве они таким образом не становятся доступны всем?
Re: зачем assets
Становится. Он там и нужен, чтобы быть доступным всем. Редактор из JS к нему обращается.
Re: зачем assets
Ну удачи.ads писал(а):Папку с js в корень сайта и всех делов..