Как изменить метку ключа пользовательской клавиатуры Android в Java

Я не вижу проблемы с document.write. Если вы используете его до того, как событие onload срабатывает, как вы предположительно, для создания элементов из структурированных данных, например, это подходящий инструмент для использования. Нет преимущества производительности при использовании insertAdjacentHTML или явного добавления узлов в DOM после его создания. Я просто протестировал его тремя разными способами со старым сценарием, который когда-то использовал для планирования входящих вызовов модема для круглосуточной службы на банке из 4 модемов.

К моменту завершения этого сценария создается более 3000 узлов DOM, в основном, ячеек таблицы. На 7-летнем ПК, работающем под управлением Firefox на Vista, это небольшое упражнение занимает менее 2 секунд, используя document.write из локального исходного файла 12 КБ и три 1 пиксельных GIF, которые повторно используются примерно в 2000 раз.

Использование insertAdjacentHTML не является прямой заменой, поскольку браузер закрывает теги, которые требуется сценарию, остается открытым и занимает в два раза больше , чтобы в конечном итоге создать искаженную страницу. Написание всех фрагментов на строку, а затем передача ее на insertAdjacentHTML занимает еще больше времени, но, по крайней мере, вы получаете страницу как созданную. Другие варианты (например, ручное восстановление DOM по одному узлу за раз) настолько смешны, что я даже не собираюсь туда.

Иногда document.write используется. Тот факт, что он является одним из самых старых методов в JavaScript, не является противным моментом, но точка в его пользу - это высоко оптимизированный код, который делает именно то, что он должен был делать и делал с момента его создания.

Приятно знать, что существуют альтернативные методы пост-нагрузки, но следует понимать, что они предназначены для другой цели целиком; а именно изменение DOM после его создания и выделение памяти. Для использования этих методов требуется более ресурсоемкий метод, если ваш скрипт предназначен для написания HTML-кода, с которого браузер создает DOM в первую очередь.

Просто напишите его и дайте браузеру и интерпретатору выполнить эту работу. Это то, для чего они нужны.

PS: Я только что проверил, используя параметр onload в теге body, и даже в этот момент документ все еще open и document.write() функционирует по назначению , Кроме того, нет заметной разницы в производительности между различными методами в последней версии Firefox. Конечно, в кэше аппаратного / программного обеспечения, вероятно, происходит тонна кэширования, но это действительно так, пусть машина работает. Однако это может повлиять на дешевый смартфон. Ура!

0
задан pete_yoe 29 March 2019 в 12:13
поделиться