Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

У нас CRM для агентств недвижимости. Периодически появляются задачи по JS. Например, одна из текущих формулируется так:

У нас есть JS-виджет. Который в пару строк вставляется в любой сайт.

Виджет использует jquery, handlebars, requirejs, прототипное наследование и т.д.

Цель: сильно ускорить и решить проблемы со встраиванием в некоторые сайты. 

Задача: переделать сборку проекта. Сейчас там requirejs с handlebars темплейтами, которые подтягиваются через ajax. requirejs оказался плох тем, что некоторые плагины на чужих сайтах его обнаруживают, и ломают либо своё подключение либо подключение виджета (сам requirejs начинает матюкаться). Так же есть некоторые внутренние расширения виджета, подключение которых делает ещё один поход на сервер. 

Хочется

0) Не сломать обратную совместимость: подключение виджета - это строка опций плюс вставка скрипта, и хочется чтобы сайты с уже встроенным виджетом продолжали работать. 

1) сменить сборщик на такой, который не будет порождать конфликтов.

2) уменьшить количество прогулок на сервер до двух: первая за стартовым скриптом, который прочитает опции, и вторая - за всем остальным добром в одном файле: скомпилированные handlebars шаблоны, нужные расширения. В какой из прогулок будет основной код виджета - не так важно. Сейчас он в первой, но один фиг ничего не показывается раньше окончания последней из прогулок. 

3) Предложить теоретический план по сокращению количества прогулок до одной. 

Принимается любое разумное предложение технологий: серверных ограничений на это нет. 

Самая большая проблема конфликты из-за того, что сборщик requirejs. Потому что есть плагины с его поддержкой, и они автоматически при детекте require.js начинают инициализироваться через него ломая либо себя либо виджет. Причём из-за параллельной загрузки скриптов это вообще возникает через раз. Например на том же kvartus.ru/realty

Надо просто всё переделать на использование какого-нибудь другого сборщика.

Вот "стерильный" пример http://goo.gl/WMk61V

Вот пример в боевых условиях http://goo.gl/ekV4rc (кстати, здесь виджет показывается не при каждом обновлении страницы и показывается не совсем правильно из-за проблемы с конфликтами CSS, которое тоже надо решить добавлением префиксов у названий классов и элементов)

Интересует Ваш опыт в JS и стоимость часа.

8 лет назад
vickivanov
Виталий 
44 годаРоссия
18 лет в сервисе
Был
2 года назад