+2
Рамиль Алиякберов 4 года назад в Идеи для разработчиков / Интеграция и шаблоны • обновлен Evgeney S. 4 месяца назад 4

Вделайте возможность переопределять файлы JS скриптов и CSS.

Например складывать свои файлы в папку _js и, если system_js.php встречает в этой папке имя системного файла, грузился бы не стандартный, а тот который в папке _js.

Аналогично для CSS.


Просто порой приходится писать свои скрипты, дублирующие частично или полностью работу системных, но с некоторыми отличиями и особенностями.

В текущей реализации, грузятся тонна лишних скриптов, которые на сайте не используются, что не очень хорошо.

JavaScript Шаблоны

Рамиль, приведите примеры когда приходится переопределять скрипты в таких значительных объемах.

Например, был проект, где я полностью переписывал слайдеры картинок и товаров, переписывал увеличение картинок.

На текущем проекте переписываю немного логику работы с корзиной.


Я не говорю, что это нужно всегда, но бывают такие задачи.


Вот например кусок кода, кнопка "в корзину":

<button type="button" title="%%addtocart%%" class="button btn-cart ajx-cart" data-qty="1" data-url="##script_link##?itemId=##itemid##&url=##url##&eshop_special=1&action=add"><span><span>%%addtocart%%</span></span></button>


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


Да и реализация данной опции простейшая, с точки зрения программирования (минут 10 - час максимум). Поэтому, по моему, лучше чтобы она была.


С точки зрения ее полезности и трудозатрат на реализацию, я считаю, что ее нужно сделать.

То о чем Вы говорите - это малая часть системных скриптов,  реализовывать опцию ради изменения 5% , ну 10% кода вряд ли имеет смысл, т.к. увеличение объема крайне незначительно.


Переопределение кода сейчас - достаточно простая процедура, в пользовательском JavaScript файле common.js можно переопределить как весь объект так и только некоторые его методы.

+1

Хочу вновь поднять данную идею. На мой взгляд вопрос актуален с точки зрения скорости отображения страницы - системные JS, например, подключаются в head и блокируют загрузку страницы, а размер у них вполне ощутимый.

При этом может быть переопределена или не использоваться достаточно существенная часть скриптов.

На реальном примере проекта в данный момент - подвиды, фильтр, медиабокс, скроллер, слайдер, тултип, все или почти все ami.ui. - и все это достаточно объемные скрипты, кроме которых еще ряд файлов могут быть заменены. В сумме это получается около половины всего объема JS, а не 5-10%.

Имея подобный механизм, можно заменять фалы пустыми в своей папке (или как-то по-другому исключать их) и заметно сократить размер результирующего файла. При этом аналогичный функционал может добавляться скриптами, подключаемыми внизу страницы и не блокирующими ее загрузку.


Дополнительно было бы очень удобно иметь возможность добавлять и свои фалы в общую сборку при необходимости.


Так же очень хотелось бы иметь возможность сжатия (минификации) JS при сборке.


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

Для CSS было бы актуально скорее не заменять системные файлы, а добавлять свои в сборку и в них переносить стили, что позволит, например, распределять их по модулям и/или даже блокам и добавит удобства разработке.


Сервис поддержки клиентов работает на платформе UserEcho