Вопрос с помощью обновления Расширения () вместо dom.innerHTML

У меня есть вопрос относительно производительности, надежности и метода лучшей практики использования обновления Extjs () метод, по сравнению с прямым обновлением innerHTML dom элемента Расширения.

Рассмотрите эти два оператора:

Ext.fly('element-id').dom.innerHTML = 'Welcome, Dude!';

и

Ext.fly('element.id').update('Welcome, Dude!', false);

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


Кроме того, делает любой знает при использовании:

Ext.fly('element-id').dom.innerHTML

совпадает с

d.getElementById('element-id').innerHTML

?
Совместимость браузера и совместимость платформ важны, и если эти два являются существенно тем же, то отказ Ext.element.dom.innerHTML в целом для update() вероятно, было бы мое лучшее решение.

Заранее спасибо за Вашу справку,

Brian

6
задан DondeEstaMiCulo 22 January 2010 в 07:06
поделиться

2 ответа

Если вам не нужно динамически загружать сценарии в свой обновленный HTML или обрабатывать обратный вызов после обновления, то два метода, которые вы изложили, эквивалентны. Основная часть кода в Обновление () Добавляет сценарий загрузки и возможности обратных заходов. Внутри он просто устанавливает InnerHTML, чтобы сделать замену контента.

Ext.fly (). DOM Возвращает простое узел DOM, поэтому да, он эквивалентен результату getElementbyId () в терминах узла, который указывает на. Единственная тонкость, чтобы понять, это разница между ext.fly () и ext.get (). Ext.fly () Возвращает общий экземпляр объекта узел обертки (излучения). Таким образом, этот экземпляр может позже указать на другой узел за кулисами, если какой-либо другой код вызывает Ext.fly (), включая внутренний код Ext. Таким образом, результат вызова на Ext.fly () следует использовать только для атомных операций, и не используется только в качестве долгоживающего объекта. Ext.get (). DOM С другой стороны, возвращает новый уникальный экземпляр объекта, и в этом смысле будет больше похоже на GetElementByID ().

4
ответ дан 17 December 2019 в 02:28
поделиться

Я думаю, что вы ответили на свой вопрос: «Браузер и совместимость на платформе важны, и если два принципиально одинаковы, то качалки Ext.Element.dom.innerHTML в целом для обновления (), вероятно, будет моим лучшим Решение. " библиотеки Js предназначены (частично) в абстрактные различия браузера; Обновление является примером.

@BMoeskau пишет выше, обновите () предоставляет дополнительные функции, которые вам не нужно правильно для вашей текущей проблемы. Тем не менее, обновление - хороший выбор.

2
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: