MooTools: как насчет производительности при ходьбе DOM с помощью класса CSS - PullRequest
0 голосов
/ 24 января 2011

Я пытаюсь написать сетку. Класс: enter image description hereВозьмем, например, первую ячейку, это атрибут класса будет «ячейка r1 c1», r1 означает первую строку, а c1 означает первый столбец, затем я использую такой код для управления всей строкой:

gridContainer.getElements('.r1').addClass('selected');

, поэтому мой вопросэто: это хорошая практика, чтобы делать так?

1 Ответ

1 голос
/ 24 января 2011

зависит от браузера и версии mootools.

Прежде всего, если вы хотите сохранить существующий код, используйте .getElements("td.r1") - более подходящий селектор будет лучше для браузеров, в которых отсутствуют getElementsByClassName и querySelectorAll.

Я задал похожий вопросв моем интервью с Fabio Miranda Costa из команд mootools-core и Slick (для v1.3), и вы можете прочитать его ответ здесь (внизу!): http://fragged.org/intermoos-part-6-fabio-miranda-costa-gets-slick_1213.html

, чтобы спасти вас от клика, чтоЛучшая практика с сликом теперь:

// 1
$$("#someid div.something");
// or 2
document.id("someid").getElements("div.something");

его ответ был:

В первом примере:

  • Еслив браузере есть метод querySelectorAll, Slick Engine обнаружит его и сразу же использует, молниеносно
  • Если в браузере его нет, короче - он будет выполнять document.getElementById ('someid').getElementsByTagName ('div') и для каждого из найденных узлов он проверит существование класса'thing '.

Второй пример:

  • Длякаждый браузер, он будет захватывать элементith id 'someid';
  • Затем, если в браузере есть querySelectorAll, он будет использовать этот метод для извлечения всех элементов div с классом'thing 'из контекста' someid ';
  • , еслибраузер, у которого его нет, будет использовать метод getElementsByTagName ('div') из контекста someid, и для каждого из найденных узлов он будет проверять наличие класса'thing '.

Итак, как видно, первый будет быстрее для большинства браузеров и рекомендуется.Со времени этого интервью Firefox, Safari, Chrome, Opera и IE> = 8 имеют функцию querySelectorAll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...