Оптимизация скриптов

 
0
 
JavaScript
ava
Се ля ви | 05.11.2004, 16:46
Предлагаю писать сюда вещи, связанные с оптимизацией и быстродействием JavaScript-кода.

Недавно оптимизировал один свой старый скрипт. Узнал для себя несколько новых моментов. Может, многие знают, но кто-то нет:

1. Наткнулся на то, что работа с классаами по крайней мере у IE идёт очень медленно. Когда я заменил выражение
someNode.className = "Red";
(который просто перекрашивал в красный цвет нод) на
someNode.style.color = "#ff0000";
дало выигрыш в производительности в десятки раз!

2. Оператор with использовать для длинных DOM-ссылок неэкономно - на сколько я понял, он тупо приписывает всем выражениям ссылку, которая в нём указана. Лучше использовать специальную переменную, которой присваивать ссылку.

3. Не забываем, что выражения типа
a = 40;
возвращают значение 40 - почти все наши программы, таким образом, полны пустых вызовов. При грамматном подходе, можно одним оператором выполнять двойную работу. Вот пример того, как можно и переменной зачение присвоить и действие выполнить:
// присваиваем переменной новое случайное значение, лежащее в диапазоне от 0 до childrenLength и перекрашиваем элемент, соответствующий этому индексу
blnk[rand1 = Math.floor( Math.random() * childrenLength )].style.color = '#000000';


Пока вроде всё. Вспомню ещё - напишу.

P.S. Sardar по-умолчанию при написании вставляется с++ код. IMHO, правильнее смотреть - в каком разделе человек пишет сообщение, и, в частности, для раздела JavaScript считать код по-умолчанию JavaScript`овым, а уже в разделе с++ - с++`овым. smile И, кстати, как писать HTML-код? Для него так и нет варианта...
Kommentare (5)
ava
Sardar | 05.11.2004, 18:17 #
IMHO ловля блох, но полезно :)

Люблю краткий синтаксис, когда в одну строку вмещается очень многое по смыслу. В этом JS силен, если сравнить с тем же VB.


M
0
Подсветка HTML и SQL от форума, врубается тегами {html}/{html} и {sql}{/sql}
ava
sergejzr | 08.11.2004, 04:16 #
Если ловить самых маленьких блох, то например используя короткие имена для переменных мы уменьшаем нагрузку на парзер smile smile
Не смейтесь сильно, но ведь от величины кода также зависит время загрузки и следовательно время исполнения какой нибудь функции :)

Но на самом деле, конечно скорость увеличивает использование нативных функций. И лучше потерять время на поиск такой функции, чем имплементировать самому.

ПС:
Цитата
как писать HTML-код? Для него так и нет варианта...

Как нет? Есть конечно smile и он намного мощней {html}{/html}. И SQL есть smile

<html>
<head>
<title>VPF::Поиск - Форум программистов Vingrad</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<style type='text/css'>
/* FIX IE6 Scrollbars bug - Leave this in! */
html { overflow-x: auto; }
/* Body entry, change forum page background colour, default font, font size, etc. Leave text-align:center to center board content
*/
BODY { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; color: #000; }
</style>
</head>
<body onload="X()">
<script> function X(){alert("hallo world")}
</script>

<textarea >aasda</textarea>
</body>
</html>
ava
Gold Dragon | 08.11.2004, 13:07 #
Это конечно здорова, но как определить скорость выполнения того или иного кода?
ava
sergejzr | 08.11.2004, 15:26 #
Цитата (Red @ 8.11.2004, 12:07)
Это конечно здорова, но как определить скорость выполнения того или иного кода?

Например :
http://forum.vingrad.ru/index.php?act=ST&a...34024&st=0#
ava
Gold Dragon | 08.11.2004, 17:32 #
Цитата
Наткнулся на то, что работа с классаами по крайней мере у IE идёт очень медленно. Когда я заменил выражение
Ну ты конечно загнул про "очень медленно", но погоняв на тесте "S&S" и правда первый на 20-30 мс медленнее
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden