@lucifer-m
golang php js html css

Сильный ли говнокод?

Я в 10 строк написал систему событий.
Events.Add("PageSkeleton", function (data) {
     if (!data) {
            Page.Load('logo', '/page/incl/logoNotAuth.html');
            Page.Load('footermenu', '/page/incl/footerNotAuth.html');
     } else {
            Page.Load('logo', '/page/incl/logo.html');
            Page.Load('footermenu', '/page/incl/footer.html');
      }
});
//загрузка стартовой страницы
Events.Call("PageSkeleton", false)
Page.Load('page', '/page/index.html');

Я создаю все события в 1 месте, а потом вызываю их в любом месте кода. Ссылки вместо перехвата клика по ссылке (для получения урл) я тупо вешаю онклик в котором вызываю событие, а ещё одни события вызываю из других событий и т.д. Код довольно выразительный пока что (возможно ситуация ухудшится когда будет пару тысяч событий).

Что скажете?

UPD.
Моя аудитрия 80% с кирпичей которые не могут отрендить spa фреймворки по этому сделал так.
  • Вопрос задан
  • 391 просмотр
Решения вопроса 2
IonDen
@IonDen
JavaScript developer. IonDen.com
Все это будет работать оооочень медленно. Посмотрите в сторону клиентских шаблонизатров, которые вначале посчитают всю логику, а потом уже в 1(!) проход вставят на страницу все что нужно. Как поймете роль шаблонизатров, смотрите в сторону клиентских библиотек для реализации SPA, вроде Backbone, а там глядишь и до серьезных фреймворков (Ember, Angular) недалеко.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Создаёте диаграмму состояний SPA на основе данных и блоков страницы.
2. Формируете дерево зависимостей по этим состояниям.
3. Создаёте "мозг" ("роутер") на основе этого дерева в json-формате: URL, список событий, и прочее.
4. Загружаете его в основной контейнер SPA и осуществляете переход к следующему состоянию SPA на основе json: текущее => одно из следующих или предыдущее (по "дереву")
Таким образом, у Вас будет мгновенное формирование нужного шаблона вместе с подключением событий и т.д.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы