Вот несколько тестов производительности:
И 4 решения:
document.getElementById('container').innerHTML += 'Just some text here
';
$('#container').append('Just some text here
');
var div = document.createElement("div");
div.innerHTML = 'Just some text here
';
document.getElementById('container').appendChild(div)
document.getElementById('container').insertAdjacentHTML('beforeend', 'Just some text here
');
Настройка среды (2018.07.02) MacOs High Sierra 10.13.3 на Chrome 67.0.3396.99 (64-разрядная ), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64-разрядная версия)):
Как видим, insertAdjacentHTML является (Safari 110M операций в секунду, Chrome 65M, Firefox 39M), поэтому простой javascript быстрее, чем jQuery (во всех браузерах). ВнутреннийHTML + = ... медленнее, чем jQuery для всех браузеров.
Вы можете повторить тест на вашем компьютере здесь: https://jsperf.com/insert-html-ttest
Вы можете указать Grid
x:Name
в вашей разметке XAML:
<Grid x:Name="theGrid">
... и сослаться на него под этим именем в вашем коде:
var label = theGrid.Children.OfType<Label>() ...
[119 ] Обратите внимание, что это не MVVM каким-либо образом, хотя. Используя MVVM, вы получите доступ к свойству Nodeid
источника, а не к свойству Tag
элемента Label
.