Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация скриптов, скорость 
:(
    Опции темы
Се ля ви
Дата 5.11.2004, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Предлагаю писать сюда вещи, связанные с оптимизацией и быстродействием 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`овым, а уже в разделе с++ - с++`овым. :-) И, кстати, как писать HTML-код? Для него так и нет варианта...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Sardar
Дата 5.11.2004, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



IMHO ловля блох, но полезно smile

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

М
 
Подсветка HTML и SQL от форума, врубается тегами {html}/{html} и {sql}{/sql}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 8.11.2004, 04:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Если ловить самых маленьких блох, то например используя короткие имена для переменных мы уменьшаем нагрузку на парзер smile 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>



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Gold Dragon
Дата 8.11.2004, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Это конечно здорова, но как определить скорость выполнения того или иного кода?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 8.11.2004, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Цитата(Red @ 8.11.2004, 12:07)
Это конечно здорова, но как определить скорость выполнения того или иного кода?

Например :
http://forum.vingrad.ru/index.php?act=ST&f=10&t=34024&st=0#



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Gold Dragon
Дата 8.11.2004, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Цитата
Наткнулся на то, что работа с классаами по крайней мере у IE идёт очень медленно. Когда я заменил выражение
Ну ты конечно загнул про "очень медленно", но погоняв на тесте "S&S" и правда первый на 20-30 мс медленнее



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2769 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.