Правильнее было бы добавить свойство isExpanded в модель (элемент массива Nodes), и указывать классы в шаблоне, а не удалять/добавлять классы в коде компонента. Как вы, например, сохранить состояние дереве в определенный момент? Например, чтобы после перезагрузки страницы можно было восстановить это саоме состояние
Ну так в этом и суть полимера и веб-компонентов — строй приложение из разных независимых кирпичников, какие больше подходят для твоей задачи.
Angular создан так чтобы подгружать контент не перезагружая всю страницу, и сайт превращается из набора html страничек в приложение, где можно обеспечить плавный переход и экраны загрузки если захочется.
Что понимать под схожимим задачами?
Например, я разрабатывал 2 достаточо больших приложения, на Polymer 0.5.x и Polymer 1.0.x. И в обоих случаях производительность была приемлемая только в Chrome. В остальных браузерах, тк используются полифиллы — жесть просто. Ради интереса делал такое же приложение на последнем Angular 1.4 — все гораздо быстрее и стабильнее. И предсказуемо. Хотя я Angular 1 вообще не люблю.
И что еще не понравилось очень — Polymer 1.0.x очень уж сильно отличается от 0.5.x, причем в худшую сторону — столько они там всего переделали, убрали (а потом добавили все-таки по запросам пользователей). Так что переход с 0.5 на 1.0 — не такое уж и простое дело. Да и столько глюков и багов в нем, что диву даешься — они его хоть сами-то тестируют?
А ребят с этого видео знаю, работаю там же. Сейчас планируется переход на Angular 2, т.к. Polymer очень тормозной.
Не сказал бы, что Angular2 намного сложнее Polymer. по удобству использования — в течение пары часов приввыкаешь при переходе с Polymer на Angular2. Ну, мне так кажется. Polymer — хорошая штука, но очень уж тормозная. Angular2 вроде как побыстрее.
Вас куда-то не туда понесло. Мы обсуждали, в данном контексте, насколько я понял, что если не склеивать все JS в один / несколько файлов, то будет расти нагрузка на сервере, т.к. будет много операций на чтение каждого файла.
Легко может стоить вам от 500ms до 5000ms (например, GPRS) при загрузке страницы. Это очень много. К тому же JS-функциональность всё чаще является не «рюшечками» а острой необходимостью.
Причем тут вообще GPRS? Разговор у нас шел вообще о, цитирую, «ещё накладные расходы на использование файловой системы». И все, о чем, я говорил, было связано именно с этой темой. Я не утверждал, что плохо или хорошо склеивать все в один файл — все зависит от проекта, где-то это нужно, где-то нет. А вы тут препроцессоры еще приплели :)
Про количество модулей в Картах в курсе :)
Ну в картах и есть несколько разных сборок (вроде бы) с необходимой для каждого юзера функциональностью. Понятно, что тут такой подход и нужен — все нужные модули в один файл :)
Не понимаю, причём тут это. Что мешало сделать несколько bundle's, самый простой из которых загружал только нужное обычному посетителю, в обычных ситуациях, а менее популярные зависимости раскидать по другим bundle-ам?
Я привел пример, когда подход «все в одном файле» был неоправдан. Мешало то, что проект очень древний (перепиленный ExtJS 3.4) и как такового загрузчика, вроде RequireJS, не было. И не было нормального разбиения по модулям, все друг с другом было очень связано. Переписывать и переделывать — очень дорого для бизнеса + получился бы велосипед с треугольными колесами (хотя, на мой взгляд, поддерживать все эту хрень стоит еще дороже, чем переписать).
Почему же? Если речь идёт о вёрстке, то разработчики, зачастую, используют спрайты или base64 dataurl, и число запростов уменьшается многократно (вплоть до 1-го запроса к CSS файлу, где всякая мелочь лежит как base64). А картинок связанных с контентом web-сайта может и не быть вовсе. Или быть мало, не всё же новостные порталы.
Тут не про верстку имелось в виду. Не обязательно бть новостным порталом, чтобы грузить много изображений. Возьмите тот же Яндекс.Диск, Flickr, Pinterest, какая-нибудь CRM-ка (например, какие-нибудь аватары пользователей). Ну 30-40 картинок может быть легко, и на этом фоне загрузка 5-10 скриптов — мелочь, тем более Вы же знаете про кэширование?
Ну у меня в проектах обычно только SCSS файлов около 100-ни, если не больше (import-ы). да и JS-ов на данный момент порядка 80-и.
SCSS тут причем? И вы разом загружаете пользователю все эти 80 js-модулей? Вы же сами утверждали, что необходимо загружать только нужное сначала. Сколько у Вас критически важных модулей из этих 80?
Мне кажется, тут все очень зависит от проекта. В каких-то проектах необходимо все объединять в один файл, в каких-то лучше все как-то хранить модульно. Например, на прошлой работе все сжималось в один (или два, точно не помню) файла, общий размер которого около 2мб (одного ExtJS фиг знает сколько было). В проекте были разные тарифные планы, и, например, фришный пользователь мог видеть только 20% от всего приложения. Получается, что для него грузилась куча ненужного кода.
А расходы на использование файловой системы в обычном среднестатистическом проекте — микроскопические. Картинок всяких грузится обычно в разы больше, чем скриптов. Да и никто ведь разом не будет загружать все 100 модулей. А вот если будет — то да, лучше в один файл все :)
Не проверял даже, если честно — не особо нужно было. На самом деле радует, что:
— 100 минут на любые номера по России действуют (и на мобильные, и на обычные городские)
— скорости интернета хватает, чтобы слушать музыку — на Мегафоне часто терялся интернет
— сеть покрытия такая же (ну, в тех местах, где обычно бываю — разницы нет)
В СПб подключился сразу же, как начали выдавать сим-карты. За месяц пользования никаких изменений и неудобств по сравнению с Мегафоном не заметил. Номер переводил, но, правда, до сих пор не перевли из-за Мегафона (один номер перевели) — сначала паспортные данные в Мегафоне были не те якобы, потом не перевели из-за долга в 2 рубля (который был на момент написания заявления). В целом — доволен всем
isExpandedв модель (элемент массива Nodes), и указывать классы в шаблоне, а не удалять/добавлять классы в коде компонента. Как вы, например, сохранить состояние дереве в определенный момент? Например, чтобы после перезагрузки страницы можно было восстановить это саоме состояниеВ Polymer это тоже возможно.
Например, я разрабатывал 2 достаточо больших приложения, на Polymer 0.5.x и Polymer 1.0.x. И в обоих случаях производительность была приемлемая только в Chrome. В остальных браузерах, тк используются полифиллы — жесть просто. Ради интереса делал такое же приложение на последнем Angular 1.4 — все гораздо быстрее и стабильнее. И предсказуемо. Хотя я Angular 1 вообще не люблю.
И что еще не понравилось очень — Polymer 1.0.x очень уж сильно отличается от 0.5.x, причем в худшую сторону — столько они там всего переделали, убрали (а потом добавили все-таки по запросам пользователей). Так что переход с 0.5 на 1.0 — не такое уж и простое дело. Да и столько глюков и багов в нем, что диву даешься — они его хоть сами-то тестируют?
А ребят с этого видео знаю, работаю там же. Сейчас планируется переход на Angular 2, т.к. Polymer очень тормозной.
Ну, если правильная архитектура приложения, то ничего сложного нет.
Причем тут вообще GPRS? Разговор у нас шел вообще о, цитирую, «ещё накладные расходы на использование файловой системы». И все, о чем, я говорил, было связано именно с этой темой. Я не утверждал, что плохо или хорошо склеивать все в один файл — все зависит от проекта, где-то это нужно, где-то нет. А вы тут препроцессоры еще приплели :)
Ну в картах и есть несколько разных сборок (вроде бы) с необходимой для каждого юзера функциональностью. Понятно, что тут такой подход и нужен — все нужные модули в один файл :)
Я привел пример, когда подход «все в одном файле» был неоправдан. Мешало то, что проект очень древний (перепиленный ExtJS 3.4) и как такового загрузчика, вроде RequireJS, не было. И не было нормального разбиения по модулям, все друг с другом было очень связано. Переписывать и переделывать — очень дорого для бизнеса + получился бы велосипед с треугольными колесами (хотя, на мой взгляд, поддерживать все эту хрень стоит еще дороже, чем переписать).
Тут не про верстку имелось в виду. Не обязательно бть новостным порталом, чтобы грузить много изображений. Возьмите тот же Яндекс.Диск, Flickr, Pinterest, какая-нибудь CRM-ка (например, какие-нибудь аватары пользователей). Ну 30-40 картинок может быть легко, и на этом фоне загрузка 5-10 скриптов — мелочь, тем более Вы же знаете про кэширование?
SCSS тут причем? И вы разом загружаете пользователю все эти 80 js-модулей? Вы же сами утверждали, что необходимо загружать только нужное сначала. Сколько у Вас критически важных модулей из этих 80?
А расходы на использование файловой системы в обычном среднестатистическом проекте — микроскопические. Картинок всяких грузится обычно в разы больше, чем скриптов. Да и никто ведь разом не будет загружать все 100 модулей. А вот если будет — то да, лучше в один файл все :)
— 100 минут на любые номера по России действуют (и на мобильные, и на обычные городские)
— скорости интернета хватает, чтобы слушать музыку — на Мегафоне часто терялся интернет
— сеть покрытия такая же (ну, в тех местах, где обычно бываю — разницы нет)