caballero написав:

   по людськи - це  значить  - визначитися  чи  потрiбно  там  взагалi стiльки яваскрипта та   аякса.    Може  тодi проблеми  iвентами  та  iншим  гемором  самi вiдпадуть.   Якщо  ви, звичайно,  не є  js-евангелiстом.

Точно потрібно. Можливо, з самого початку невірно обрав потрібний інструмент, але на даному етапі проекту вже легше допиляти, аніж все переписати.

caballero написав:

Вас  мало  би насторожити  що  сам  гугл нiде не  використовує  ангуляр  який   вони  самi ж   пiарять.

Це дійсно дивно.

caballero написав:

HTML5 не  обмежує  використання  атрибутiв.

Тим не менше, валідатор скаржиться на нестандартні атрибути, які починаються не з "data-".

caballero написав:

до  речi  ви не  уявляєте  скiльки  сотень  якщо не  тисяч  iвентiв та  колбекiв  генерують  js фреймворки  типу  ангуляра.

краще нехай їх генерують фреймворки, аніж я. бо вже нагенерував  :(

ktretyak написав:

1. ...
2. ...
3. ...

Дуже дякую, придивлюся до Angular. Мене тільки насторожують атрибути ng-*. За тех.завданням, сторінка на виході має бути валідною в HTML5.

caballero написав:

якщо  переписувати  функцiонал сторIнки  то чи  простiше взагалi повикидати яваскрипти  i написати  по  людськи

Що Ви маєте на увазі під "по людськи"? Код, звісно, можна рефакторити, можна більш дрібно розбити js-файли. В моєму випадку, найбільшими проблемами є:

  • івент на завантажений DOM треба вішати через незмінний батьківський DOM

  • після завантаження AJAX'ом контенту, в ньому необхідно ініціалізувати всі js-елементи (selectordie, confirmation, ajaxform, слайдери, управління html5-audio/video)

  • "важкість" коду

З приводу конкретних прикладів, ось шматок коду який непогано демонструє проблеми 2 і 3:

    $('#manage-collections-modal').on('hidden.bs.modal', function(){
        $.get(document.URL+' .form-collectionid>option', function(response){
            var responseJQ = $('<div></div>').html(response);
            $('.form-collectionid').each(function(e,elem){
                var current = $(elem).val();
                var newHtml = responseJQ.find('#'+$(elem).attr('id')).html();
                var newJQ = $('<div></div>').html(newHtml);
                $(elem).html(newHtml);
                if(newJQ.find('option[value="'+current+'"]').length){
                    $(elem).val(current);
                }
                $(elem).selectOrDie('update');
            });
        });
    });

Код вище при закритті модального вікна всього-навсього отримуює і передає оновленні опціі в селект. Таких функцій дуже багато.

VTrim написав:

JQuery не підходить ?

На jQuery все працює зараз. Робота з обробниками івентів на завантажених AJAX'ом DOM'ах - це якесь пекло. Після кожного виклика модального вікна - треба ініціалізувати інші скрипти (selectordie, ajaxform і т.д.). Структура і об’єм коду змушують мене страждати кожного разу.

0xDADA11C7 написав:

Я набагато скоротив власний код (нода в якості скриптової мови, не фронтенд) за допомогою underscore.js, щоправда потрібне розуміння функціонального підходу

Дякую, буду мати варіант на думці, але ще пошукаю варіант з нижчим порогом входження. Щойно дивився на Knockout.js - воно здалося трохи легшим + це фронтенд. Може у когось був досвід роботи з ним?

Доброго дня, Реплейсчани!

Зіткнувся з проблемою на вже майже готовому сайті (написаний на Yii2): на двох сторінках сайту дуже багато JS та AJAX. Коли дописую новий функціонал, нерідко ламається старий + код потихеньку починає перетворюватись на улюблену їжу пастафаріанців. Може хтось підкаже якийсь JS фреймворк який можна точково застосувати для більш комфортної розробки AJAX-залежного функціоналу. Навіть не западло буде переписати JS для цих двох сторінок, якщо потім буде хоч щось зрозуміло в тій каші.

Завчасно вдячний за увагу та відповіді.

7

(138 відповідей, залишених у PHP)

Тільки прийшов до необхідності та розумової можливості використовувати PHP фреймворк і одразу спробував Yii. Неймовірно швидко включився в роботу. Зараз навіть не бачу необхідності використовувати щось інше. В найближчих планах - спробувати CI.

8

(6 відповідей, залишених у PHP)

Мені подобається бд, яку пропонує CMS OpenCart:
1. Є всі необхідні таблиці.
2. БД третьої нормальної форми з усіма витікаючими приємними наслідками.
3. Все зроблено просто і зі смаком: навіть з невеликим досвідом проектування БД можна швидко зрозуміти що до чого.
4. Є типові запроси по читанню з та запису в базу у вихідному коді OpenCart.