Каковы преимущества использования метода .insertAdjacentHTML
по сравнению с .innerHTML
? Есть ли веские причины для использования .innerHTML
вместо .insertAdjacentHTML
? У кого лучшая производительность? Как работает .innerHTML
? Каковы другие альтернативы?Преимущества .insertAdjacentHTML против альтернатив?
ответ
Есть несколько преимуществ .insertAdjacentHTML
имеет более .innerHTML
. Первым из них является производительность. В проведенном контрольном испытании .innerHTML
добавили чуть более 200 твитов Twitter за пять секунд. insertAdjacentHTML
, с другой стороны, добавили почти 30 000 в тот же временной интервал. Чем больше данных нужно было добавить, тем хуже .innerHTML
. Обратите внимание, однако, в этом случае данные были добавлены с использованием .innerHTML +=
.
Еще одно преимущество - контроль. .insertAdjacentHTML
предоставляет вам контроль над тем, где вы хотите добавить данные, а `.innerHTML - нет.
Окончательное преимущество .insertAdjacentHTML
- это не повреждает DOM. Вот как работает .innerHTML +=
.
- Он получает значение
.innerHTML
по сериализации потомков элемента. - Он добавляет правую сторону + = к строке.
- Он удаляет детей элемента.
- Он анализирует новую строку, что содержит сериализацию старых потомков, а затем некоторую новую разметку. Очевидно, что последнее преимущество не применяется в случае использования
.innerHTML =
.
Других альтернативы .innerHTML
являются .insertBefore
методом, который, как предполагает его название вставляет узел в качестве дочернего до другого узла, а также .appendChild
метод, который вставляет дочерний узел в качестве последнего узла.
.insertAdjacentHTML
что-то из многофункционального инструмента, видя, как он может выполнять работу по .innerHTML
, .insertBefore
, а также .appendChild
.
Источники: https://hacks.mozilla.org/2011/11/insertadjacenthtml-enables-faster-html-snippet-injection/
В вашем вопросе ничего не говорится об использовании '+ =' с '.innerHTML', поэтому я не уверен, почему ваш ответ касается именно этой ситуации. Это похоже на то, что вы не читали свой собственный вопрос. –
Я отредактировал вопрос, и в настоящее время я делаю то же самое для ответа. – Azrael
- 1. Преимущества использования автотелов и альтернатив
- 2. Entity Framework против альтернатив
- 3. TFS против альтернатив с открытым исходным кодом?
- 4. Aggregation против Наследование в C#, или альтернатив
- 5. vector <double> :: size_type против альтернатив
- 6. Преимущества self.attribute против @attribute?
- 7. Преимущества Git # (GitSharp) приведут к использованию существующих альтернатив в Windows?
- 8. Каковы преимущества массива против вектора?
- 9. Преимущества использования EAR против WAR?
- 10. Преимущества oauth2 против простого входа?
- 11. HttpModule против DelegatingHandler - преимущества/недостатки?
- 12. Javascript insertAdjacentHTML не работает
- 13. `insertAdjacentHTML` и` createElement`
- 14. insertAdjacentHTML и переменные массива
- 15. функции зеркала insertAdjacentHTML
- 16. VBA insertAdjacentHTML, разделительные метки
- 17. По умолчанию JAVA, $ java_home против SUDO ДОПОЛНЕНО альтернатив --config Java
- 18. Веб-службы против EJB против RMI, преимущества и недостатки?
- 19. Оптимизация альтернатив DateTime.Now
- 20. Каковы преимущества и недостатки Angular.js против Elm?
- 21. Регистрация сеанса против аутентификации HTTP. Преимущества Недостатки
- 22. Преимущества родной ActionBar против пользовательской реализации?
- 23. Каковы преимущества Хадсона против использования shellscript?
- 24. NemoJs против NightWatchJS? Преимущества и недостатки
- 25. Преимущества использования ScalaFutures от ScalaTest против Await.result
- 26. Преимущества Azure WorkerRole против начала новой нити
- 27. Преимущества do {} while (0) против ({}) в макросе?
- 28. Преимущества и недостатки #define против констант?
- 29. Эффективность Преимущества java.util.Date compareTo против до/после?
- 30. Веб-службы против WCF, преимущества и недостатки
Эти два варианта совершенно разные. Причина использования одного над другим зависит от ситуации. –