@PiiP: ну ок, если записей в базе под сотню то норм. А потом у вас просто все начнет дико пидалить.
С моим вариантом было бы так:
SELECT b.*, g.* FROM bands b
INNER JOIN band_vs_genres as bg ON bg.band_id = b.id
INNER JOIN genres as g ON g.id=bg.genre_id AND g.name IN ('some', 'genre')
LIMIT 0, 10
Андрей Чвалов: сразу предупрежу что без должного опыта ваш код по документации и всяким там форумам на Yii2/Laravel будет поход на гуано. Хотя все же лучше чем Fat3.
Если вам нравится идея микрофреймворков - рекомендую посмотреть в сторону Silex. А там потом можно уже и на Laravel/Symfony2/
Sergey Romanov: должен заметить что обычно там все чуть по сложнее чем создать один элемент, в любом случае все эти шаблоны должны кешироваться и затем вместо пересоздания клонироваться элементы.
Сергей: Могу лишь предположить что .checkcheck создается после того как вы пытаетесь навесить ивенты...
Могу лишь порекомендовать все же почитать документацию по jQuery и JS. Так же имеет смысл ознакомиться с такой штукой как event bulbing и делегированные события. Ну и в целом DOM подучить.
@CartmanGui: реддис выступает в роли быстрого промежуточного хранилища, у вас должен быть так же скрипт который записывает всю эту информацию в базу и синхронизирует все это добро. Как часто - решать вам.
Денис Пушкарев: ну несовсем так. Генераторы это сахар над старыми добрыми итераторами. То есть на reduce/map это сказаться никак не должно по идее. map/reduce в ES5 появились по сути в стандартной библиотеке, до этого использовались свои реализации (underscore/lodash).
Денис Пушкарев: как по мне "функциональщина" это как раз таки js-way. Вопрос в том что если в будущем понадобится не просто цикл обходить а условия вставлять и т.д. можно будет добавить filter перед этим делом или просто в reduce условие воткнуть.
Есть еще такой момент, если скажем рассматривать вариант с формированием новой коллекции в контексте angularjs с тамошней системой датабиндинга, ваш вариант с pop скажется при отслеживании изменений в коллекции, так как ссылка на объект не поменяется.
@Quber: все от задачи зависит сильно. Если у вас по одному маршруту разное поведение для админов/пользователей и т.д. для одного метода, то это стоит разруливать в контроллере или сервисе уже.