Что быстрее: php + jQuery .html() vs. AngularJS $scope?

Интересует вопрос, что же быстрее или/и лучше будет работать: вставка большого куска HTML кода, сформированного на сервере и переданного через Ajax и вставленного на клиенте в страницу посредством jQuery(".content").html(data) или же передача данных с сервера в виде json строки и формирование dom через шаблон AngularJS?

Подробности:
Данные представляют сложную выборку из MySQL бд, в виде большого массива (100 элементов с десятью параметрами (строки и числа) за один запрос).

На готовой странице с отображением элементов будет "бесконечный скролл" (lazy load)

Готовый html шаблон для одного элемента: (для примера объема данных)
<div class="class" data-par="item.data1" >
	<div class="class" title="item.data2"></div>
	<a href="item.data3" target="_blank" class="class">
		<div class="class">item.data4</div>
		<div class="class" title="...">item.data5</div>
	</a>
	<div class="class" style="item.data6">
		<a href="item.data3" target="_blank" class="class">
			<div class="class">
				<p class="class">item.data7</p>
			</div>
		</a>
		<div class="class">
			<ul class="class">
				<li class="class" title="...">
					<div class="class">item.data8</div>
					<span>item.data8</span>
				</li>
				<li class="class" title="...">
					<span class="class ">
						<div class="class">item.data9</div>
					</span>
				</li>
				<li class="class" title="...">
					<span class="class ">
						<div class="class">item.data10</div>
					</span>
				</li>
			</ul>
		</div>
	</div>
</div>
  • Вопрос задан
  • 5165 просмотров
Решения вопроса 2
Не такие это уж и большие данные. Вы не почувствуете разницы между jQuery и Angular`ом. Поэтому, выбирайте то, на чем удобнее писать и с чем удобнее работать.
Думаю, чтоб почувствовать разницу, надо не в количестве элементов померить а в размере текста в MB. Я видел в одном проекте, в страницу подгружается до 3MB текста, потом перемалывается, и выводиться в определенном виде - браузер, при этом, напрягся но не сильно. Вот думаю, на таких объемах, есть смысл померить производительность.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
быстрее конечно же вставить сформированный html прямо в нужный блок. Это же логично. С другой стороны ngRepeat начинает подтормаживать только на количестве элементов ~10К, но тут сам браузер начинает тупить только от количества dom элементов. Но вот по скорости разработки и дешивизне поддержки реализовать все на angular будет правильнее.

Я это к чему, чем рендрить сотню элементов разницы особо нету, но оптимизировать бесконечный скролл всеравно придется (прятать ненужный сейчас элементы что бы они не влияли на скорость отрисовки и т.д.).

советую почитать эту статью, а так же при реализации скрола на ангуларе использовать ngScroller
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы