Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.11.2009, 04:13
Аспирант
Отправить личное сообщение для arma Посмотреть профиль Найти все сообщения от arma
 
Регистрация: 18.10.2009
Сообщений: 50

да что мне не говори, что не делай, в 8 ие тормоза всё одно есть. В 6 нет, а в 8 есть. Конэчно это может быть из-за винды семёрки... Хотя врятли) 8 тупит при выше описанных действиях. Я с этим смерился Заказчикам проДЕМОНстрировал проект в опере Что делать... совесть болит, а кашелёк толст
Ответить с цитированием
  #12 (permalink)  
Старый 11.04.2011, 17:09
Аватар для eval
Интересующийся
Отправить личное сообщение для eval Посмотреть профиль Найти все сообщения от eval
 
Регистрация: 04.11.2010
Сообщений: 19

столкнулся тоже с такой проблемой ))
скрипт выполняет следующее : появление дива
одновременно с добавлением прозрачности, изменяю позицию топ ...
(пример подсказок вконтакте - только вверх + размеры окна 500х400)
в IE и сафари плавней чем в других и это печально !
выдал что-то страшное в виде условия :
var crsSpeed=(/MSIE/.test(navigator.userAgent)) ? 1 : ((/Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent)) ? 5 : 18);

crsSpeed ставлю в setTimeout

для IE попытался увеличить количество пикселей для позиции в 2 раза

сафари на ура - а вот в IE чуток ухудшилась эффектность появления на зато почти идентичная скорость

использовал для сравнения console.time() и console.timeEnd() колебания в 50-70ms !

смотрел вконтакте у них кстати похожая картина с изменение числа пикселей для IE (эффектность то не та...)

в итоге прочитав то что нашел в инете по этому поводу и взглянув на свой код пришел к выводу что пора браться за оптимизацию, в этом многие беды - подобной проблемы

не надо сильно критиковать за страшное условие сверху ... только осваиваюсь с js

если у кого то есть какие то соображения по этому поводу, я не против посмотреть на решения которые нашли другие... потому что мое мне кажется "отсталым"


спустя пару часов отдыха, пришла мысль : что бы при появлении присваивать не по 0.1 opacity, а по 0.2 и соответственно не 10 раз вызывать метод(как для нормальных браузеров) а 5 конкретно для IE 8, немного поправил значения в условии
var crsSpeed=(/MSIE\s8/.test(navigator.userAgent)) ? 2 : ((/Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent)) ? 22 : 14);
результат console.time показал у chrome, firefox, opera, IE 8 (250-280ms -- кстати IE 8 : 250 ) погрешность 20-30ms что очень радует.
итог IE*2 = cross browser - кстати safari 5.0.4 так же как и IE 8 пришлось запускать 5 раз и setTimeout 22
можно сказать что в моем случаи решение найдено почти идеально.
может не по теме но все же : console time для ie - мне кажется нужная вещь ))
//console.time implementation for IE
if(window.console && typeof(window.console.time) == "undefined") {
    console.time = function(name, reset){
        if(!name) { return; }
        var time = new Date().getTime();
        if(!console.timeCounters) { console.timeCounters = {} };
        var key = "KEY" + name.toString();
        if(!reset && console.timeCounters[key]) { return; }
            console.timeCounters[key] = time;
        };
    console.timeEnd = function(name){
        var time = new Date().getTime();
        if(!console.timeCounters) { return; }
        var key = "KEY" + name.toString();
        var timeCounter = console.timeCounters[key];
        if(timeCounter) {
            var diff = time - timeCounter;
            var label = name + ": " + diff + "ms";
            console.info(label);
            delete console.timeCounters[key];
        }
        return diff;
    };
}

Кто знает может кому-то пригодится подобный взгляд на setTimeout...

Последний раз редактировалось eval, 12.04.2011 в 14:01.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аргументы в setTimeout - проблема в IE 6 micscr Общие вопросы Javascript 8 28.09.2009 13:08
setTimeout Воитель Общие вопросы Javascript 5 23.01.2009 10:36