Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Работа над сайтом > DHTML/JS/CSS

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 02.12.2003, 12:17
Andyfor вне форума Посмотреть профиль Отправить личное сообщение для Andyfor Посетить домашнюю страницу Andyfor Найти все сообщения от Andyfor
  № 1  
Andyfor

Регистрация: May 2001
Адрес: Сочи
Сообщений: 19
По умолчанию Как оптимизировать JavaScript?

Приветствую, уважаемые!
Вопрос следущий:
имею меню, небезызвестное [url=http://www.webreference.com/HierMenus[/URL] (4) .
Все хорошо - и в IE кажется, и в NN, и в Мозилле.

НО! Тормоза при загрузке в IE.
Просто подвисает минуты на полторы (!), подозрение на то, что начинает компилить код (файл, идущий в пакете, кило под 40-50 тянет - многовато) - винт работает вовсю.

Это конечно бесит.
Вопрос: можно ли какими либо программными средствами оптимизировать сам код за счет того, что убрать всевозможные варианты настройки, и подставить конкретные параметры там, где надо?

Может Вы сталкивались с подобной проблемой, или у вас есть мысли? Поделитесь!
Заранее благодарен.
С уважением,
Андрей Ч.
__________________
Спасибо за внимание.
С уважением, Andyfor

Старый 10.12.2003, 00:47
mike_sobolev вне форума Посмотреть профиль Отправить личное сообщение для mike_sobolev Найти все сообщения от mike_sobolev
  № 2  
mike_sobolev

Регистрация: Jun 2003
Сообщений: 121
Отправить сообщение для mike_sobolev с помощью ICQ
Браузер код не компилирует, а интерпритирует. Это, как говоритца, две большие разницы.
А почему так долго (как ты описал) работает и винт хрипит - х.з. Ссылка мёртвая.

Старый 10.12.2003, 02:09
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 3  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) mike_sobolev
Браузер код не компилирует, а интерпритирует. Это, как говоритца, две большие разницы.
Любопытно: а как мсье выяснил, что браузер перед исполнением не компилирует скрипты? Каким-то логическим путем или просто прозрением? На MSDN'е об этом ни слова. Мозилла, если мне память не изменяет, таки компилирует скрипты в байткод, за IE не скажу.

Цитата:
А почему так долго (как ты описал) работает и винт хрипит - х.з. Ссылка мёртвая.
http://www.webreference.com/dhtml/hiermenus/
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++


Последний раз редактировалось Crazy; 10.12.2003 в 02:11.
Старый 10.12.2003, 10:27
mike_sobolev вне форума Посмотреть профиль Отправить личное сообщение для mike_sobolev Найти все сообщения от mike_sobolev
  № 4  
mike_sobolev

Регистрация: Jun 2003
Сообщений: 121
Отправить сообщение для mike_sobolev с помощью ICQ
Да потому что, мусье(?), скриптовые языки впринципе не компилируются.
Это интерпритируемый язык по определению.
Раскиньте извилиной и прикиньте как быстро работал бы ваш браузер при компиляции 20-30 вставок JS в хтмл код...
Да и отладчик тогда бы работал несколько по-иному.
И вообще, по-моему в данном вопросе (по поводу js) сомнений вообще возникать не должно.

ps
А html тоже компилируется? :-)

Старый 10.12.2003, 11:36
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 5  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) mike_sobolev
Да потому что, мусье(?), скриптовые языки впринципе не компилируются.
Друг мой, ты опять бредишь. Простой пример: python. Для него отчетливо видно, что компиляция есть -- результат даже пишется в отдельные файлы.

Все нормальные реализации принципиально скриптового TCL -- с компиляцией в байткод.

Цитата:
Это интерпритируемый язык по определению.
По какому определению? Которое ты сейчас выдумал для обоснования бреда?

Цитата:
Раскиньте извилиной и прикиньте как быстро работал бы ваш браузер при компиляции 20-30 вставок JS в хтмл код...
Прекрасно работал бы. Куда лучше, чем исполнение цикла из 1000 итераций, в котором тупой интерпретатор заново 1000 раз парсит тело цикла.

Цитата:
Да и отладчик тогда бы работал несколько по-иному.
И как бы он работал?

Цитата:
И вообще, по-моему в данном вопросе (по поводу js) сомнений вообще возникать не должно.
Не должно кому?

Цитата:
А html тоже компилируется? :-)
Слово "компилируется" не может быть строго применено к сущности, которая не является языком программирования. Если брать несколько расширенное понимание, то да. В виденных мной исходниках аналогичная фаза присутствует.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++


Последний раз редактировалось Crazy; 10.12.2003 в 11:37.
Старый 10.12.2003, 14:30
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 6  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
В целях экономии времени на бессмысленный спор:

1. Берем Rhino (реализация Javascript).
2. Открываем исходники класса Codegen в пакете org.mozilla.javascript.optimizer.
3. Читаем, как реализован метод compile().

Если после этого останется желание рассуждать на тему "в Javascript нет и не может быть компиляции", то это уже клиника и амбулаторно не лечится.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 10.12.2003, 19:23
mike_sobolev вне форума Посмотреть профиль Отправить личное сообщение для mike_sobolev Найти все сообщения от mike_sobolev
  № 7  
mike_sobolev

Регистрация: Jun 2003
Сообщений: 121
Отправить сообщение для mike_sobolev с помощью ICQ
Crazy, чтоб у тебя извилина так же работала, как язык подвешан.
П по поводу интерпритируемости js - спроси у какого-нибудь умного дяди, если сам настолько Crazy, что понять не можешь.
По-моему, тема исчерпана.
Но ты можешь ещё что-нибудь написать.

Старый 10.12.2003, 19:49
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 8  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) mike_sobolev
Crazy, чтоб у тебя извилина так же работала, как язык подвешан.
Спасибо. Твоими молитвами.

Цитата:
П по поводу интерпритируемости js - спроси у какого-нибудь умного дяди, если сам настолько Crazy, что понять не можешь.
Полагаю, разработчики Мозиллы достаточно умные дяди. Вот у них и спросим. И вот, что они нам отвечают:

Цитата:
The JS engine supports JS 1.0 through JS 1.4. JS 1.3 and greater conform to the ECMAScript-262 specification. At its simplest, the JS engine parses, compiles, and executes scripts containing JS statements and functions. The engine handles memory allocation for the JS data types and objects needed to execute scripts, and it cleans up--garbage collects--the data types and objects in memory that it no longer needs.

[поскипано]

Embed the appropriate JS engine call(s) in your application to compile and execute the script. You have two choices: 1.) compile and execute a script with a single call to JS_EvaluateScript, JS_EvaluateUCScript or 2.) compile the script once with a call to JS_CompileScript or JS_CompileUCScript, and then execute it repeatedly with individual calls to JS_ExecuteScript.
Ну что теперь? Объявишь, что разработчики Мозиллы тоже совсем крэйзи и, в отличие от тебя, нихрена в Javascript'е не секут?

Цитата:
По-моему, тема исчерпана.
Разумеется, исчерпана. Я тебе указал на конкретное место в исходниках реализации Javascript, в котором находится код компилятора. Ответить на это, как я вижу, тебе абсолютно нечего -- кроме "спроси умного дядю" и тому подобной интеллектуальной мастурбации.

Цитата:
Но ты можешь ещё что-нибудь написать.
Ну хоть одна правильная догадка во всем треде. Молодец.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 11.12.2003, 21:13
sts вне форума Посмотреть профиль Отправить личное сообщение для sts Найти все сообщения от sts
  № 9  
sts
алкаголик и придурок
 
Аватар для sts

Регистрация: May 2001
Адрес: город-герой лондон
Сообщений: 2,103
По умолчанию ответ

и скрипт, и массив хранятся в кэше и на скорость загрузки никак не влияют (только в первый раз и то немного). тормоза появляются при обработке массивов

я гружу их постепенно:

HM_GL_CreateChildrenJIT = true;
HM_GL_CreateMenusOnLoad = false;

Удачи

Старый 12.12.2003, 14:29
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 10  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
sts, меня смущает "винт работает вовсю". Как ни старался -- не могу от этого пакета такого добиться...
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Создать новую тему   Часовой пояс GMT +4, время: 00:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:19.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.