8
11

Друзья, у кого есть опыт по работе с фронтендом!

Столкнулся с проблемой организации с css/js. На данный момент на форуме очень много css/js завимостей. Причем многие jquery-плагины идут в связке (js+css), которую хочется держать вместе. Некоторые страницы имеют свои зависимости.

На данный момент есть некоторый assets-контейнер, зависимости которого можно указывать в шаблоне на каждой отдельной странице. Затем эти зависимости собираются в список (но не упаковываются и не объединяются) и прописываются в соответствующих местах. Это удобно, но требует нескольких десятков запросов от клиента при загрузке страницы.

Хотелось бы обойтись без Node.JS ;)

  • twinhooker
    2015-02-08 10:45 #

    http://backbonejs.ru/ по отзывам от JSеров не плох (: так же на одном проекте использовали Аннулярку. Главная идея сделать модель которую затем прицепить на определенные элементы в UI, обновляя модель через что угодно элементы понятное дело обновляются.

    или CTRL+Enter формат
    • vtitwinhooker
      2015-02-08 12:25 #

      Да, так сейчас и есть (модель + обзерверы). Но я не совсем про это спрашивал, а про организацию js/css файлов в проекте :)

      или CTRL+Enter формат
  • Dmitry
    2015-02-08 14:22 #

    Почему не держать css рядом с js, а при сборке не сделть один большой js и один большой css для всего проекта целиком?

    Делается всё это дело автоматом, на сколько я интересовался, при сборке через grunt. Ну да, требует nodejs. Но не вижу в этом ничего плохого.

    Как вариант, можно свой Makefile сделать, который будет делать всё то же самое, но через perl, python, ruby и т.д.

    А по поводу grunt, конечно, лучше спросить в профильных сообществах.

    или CTRL+Enter формат
    • vtiDmitry
      2015-02-08 14:26 #

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

      или CTRL+Enter формат
      • Dmitryvti
        2015-02-08 14:37 #

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

        Но ведь этих библиотек не так много? Можно вынести их отдельными строчками в шаблоне.

        Или как вариант, сторонние библиотеки паковать в свои js/css. Вроде:

        1 Backbone+jsquery+underscope -> libs.js и libs.css

        2 Плагины -> plugins.js plugins.css

        3 Приложение -> app.js app.css

        В итоге (1) и (2) обновляется редко, (3) обновляется достаточно часто.

        ЗЫ: как это делается на сборщиках пакетов - даже не представляю :)

        ЗЗЫ: пожелания по поводу форума — показывать время во временной зоне пользователя. Сейчас вроде показывает UTC (у меня 17:37, а показывает 15:37).

        или CTRL+Enter формат
        • vtiDmitry
          2015-02-08 14:40 #

          Да, пока такая же идея была. Только еще один вид: скрипты использующиеся только на конкретных страницах.

          По форуму, добавь задачу, чтобы не забыть https://github.com/vti/threads/issues.

          или CTRL+Enter формат
        • Dmitryvti
          2015-02-08 14:56 #

          А в этом реально есть смысл? Мне кажется, что это экономия на спичках (речь ведь не про библиотеки и плагины? И если я правильно понял, то проблема здесь в том же - не хочется, чтобы пользователь тянул лишние 50кб приложения с сервера).

          Упаковать их в app. Ну будет лишних 50кб, которые возможно пользователь никогда не будет использовать, ну и что? Ведь внутренности jquery тоже не все используются, а библиотеку тянуть всё равно приходится целиком.

          или CTRL+Enter формат
        • vtiDmitry
          2015-02-08 14:59 #

          Ага. Думал так же, что не стоит загодя оптимизировать %)

          или CTRL+Enter формат
Чтобы ответить, залогиньтесь или зарегистрируйтесь.
  • @user
  • _italic_

    italic

  • **bold**

    bold

  • [PP](http://pragmaticperl.com)

    PP

  • <http://pragmaticperl.com>

    http://pragmaticperl.com

  • module:Plack

    Plack

  • release:URI

    URI

  • author:VTI

    VTI

  • `my $foo = 'bar'`
  • ```
    my $multi;
    $line;
    ```