Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

<div class="playlist_panel" pv-nest="plarow">
<div class="playlist-actions">
<div class="pla-panel">
<span class="pla-button" pv-anchor="btrow-multiatcs" pv-events="click::switchPart:row-multiatcs" pv-type="way-point">● ● ●</span>
<span class="pl-settings-button" title="Playlists settings" pv-anchor="btrow-pl-settings" pv-events="click::switchPart:row-pl-settings" pv-type="way-point"></span>
</div>
<div
pv-anchor="row_context"
class="pla-row-content has-dark-buttons hidden"
pv-class="pla-row-content has-dark-buttons {{!active_part && 'hidden'}}"
style="position:relative">
<span class="rc-arrow hidden" pv-anchor="arrow" pv-props="style.left: {{arrow_pos}}" pv-class="rc-arrow {{!active_part && 'hidden'}}">
<span class=" rc-s-arrow arrow-part"><span class="rc-s-arrow-bg arrow-part"></span></span>
</span>
<div class="pla-row hidden" pv-nest="context_parts for_model:row-multiatcs" pv-class="pla-row {{!active_view && 'hidden'}}">
<div class="left-buttons-group">
<span class="button-hole">
<a
pv-events="click::makePlayable"
pv-type="way-point"
class="search-music-files nicebutton lang localize-playlist-getmp3">Find files for compositions</a>
</span>
<!-- href="http://seesu.me/generated_files/seesu_playlist.m3u"-->
<span class="button-hole">
<a
pv-events="click::makeExternalPlaylist"
pv-type="way-point"
class="open-external-playlist nicebutton lang localize-playlist-export">Save playlist to *.m3u file</a>
</span>
</div>
</div>
<div class="pla-settings hidden" pv-nest="context_parts for_model:row-pl-settings" pv-class="pla-settings {{!active_view && 'hidden'}}">
<label class="dont-rept-pl">
<input type="checkbox" pv-anchor="dont-rept-pl"/>
<span class="lang localize-dont-rept-pl">Do not repeat playlist</span>
</label>
</div>
</div>
</div>
<div
class="loader_disallowing_desc hidden"
pv-class="loader_disallowing_desc {{!loader_disallowing_desc && 'hidden'}}"
pv-text="{{loader_disallowing_desc}}"
></div>
</div>var samples = {};
var getSourceNode = function( sample_name ){
if (!samples[sample_name]) {
samples[sample_name] = $( '.' + sample_name )[0];
}
return samples[sample_name];
};
var instance1 = getSourceNode('playlist_panel').cloneNode(true);
var instance2 = getSourceNode('playlist_panel').cloneNode(true);
var instance3 = getSourceNode('playlist_panel').cloneNode(true);
он пойдёт по всему списку смотреть не изменилось ли чего у кого, заново выполняя функции на моделях, которые являются источником информации состояний. $digest… вот это всёМожно сделать директиву которая будет «точечно» обновлять по команде без проверок изменений, просто обычно этого не требуется.
Система шаблонизации и датабайндинг в angularjs — единственные вещи, которые интересны в нём.Ну, ещё и директивы.
о других реализациях техник оптимизаций на системном уровне о которых вы знаете
В каком реальном проекте вам нужно выбирать теги 500000 подряд?Но jQuery используется не только для выборок, вот пример выборка + замена текста, 5 тыс итераций. Т.е. сэкономить все же можно.
Да и странновато — подключать angular light с fquery для вызова нативных методов.Согласен, просто тут он оказался под рукой (для вывода результатов).
Анимация, 2 кадра. Прогрессивный рендеринг: сначала гарабиты, потом детали. Словить момент, и запечатлить первую часть удалось только в режиме отладки, отчего видно затемнение.
Список оптимизаций рендеринга DOM, реализуемых на уровне Javascript фреймворка