Chrome невероятно запаздывает, по сравнению с Firefox и IE

0

Я развиваю игру в веб-браузере, и по мере того, как я прогрессирую, я видел много падений FPS во время анимаций, особенно перетаскиваемых в Chrome. Я очень беспокоился о том, чтобы переписать его и что он становится тяжелым, но когда я запускал приложение в Firefox или даже в IE11, он работал настолько плавно, насколько это возможно, без каких-либо заметных задержек!

Я не могу поверить, что Chrome не будет обрабатывать этот тип рендеринга, возможно ли, что я превратил что-то в консоль, что делает хром лаги, как ад? Некоторые регистрации и т.д.?

Приложение использует тихий много непрозрачности, текстовые и полевые тени и т.д. И т.д.

благодаря

Лиса

- ОБНОВЛЕНИЕ ПРОФИЛЯ -

Так вот что происходит

Когда пользователь открывает инвентарь

_theatre('sub', '.character-panel', 1);
$('.character-panel').show()
_loadInventory();
_loadPlayerStats();
_loadEquipment();

Я считаю, что проблема заключается в функции _theatre(). Что он делает, так это то, что он создает полный фиксированный div, который имеет 0,8 непрозрачность.

function _theatre(t, e, a){

if(a == 1){

    window.paused = 1;

    $('html').css('overflow', 'hidden');

    $(e).wrap('<div class="theatre-' + t + '"></div>');

}
else{

    window.paused = 0;

    $('html').css('overflow', 'auto');

    $(e).unwrap('<div class="theatre-' + t + '"></div>');

}

}

Если я прокомментирую функцию _theatre(), перетаскивание заметно более плавное.

Я попытался удалить непрозрачность из div, но не лучший результат. Что происходит? :/

div.theatre-sub {top:0; left:0; right:0; bottom:0; position:fixed; z-index:9996; background-color:rgba(0,0,0,0.8)}
div.theatre-dom {top:0; left:0; right:0; bottom:0; position:fixed; z-index:9998; background-color:rgba(0,0,0,0.8)}

Данные профилировщика http://imageshack.com/a/img819/8601/jbf2.png

  • 0
    Вы все это время разрабатывали в Chrome? Если это так, возможно, вам просто нужно очистить кеш или что-то из этого браузера.
  • 0
    Привет да. О, я глупый, никогда даже не думал об этом. Собираюсь попробовать это сейчас.
Показать ещё 8 комментариев
Теги:
google-chrome
firefox

1 ответ

1

Не зная конкретно, в чем проблема, я предлагаю вам начать использовать console.profile() для проверки производительности вашего кода. Это должно помочь определить проблему.

Например:

console.profile("Profile One");

function yourCode()
{
   // some code
}

console.profileEnd("Profile One");

Изображение 174551ДЕМО:

http://jsfiddle.net/NMbG4/5/

Аналогично этому вы также можете использовать console.time() в том же формате, чтобы отслеживать, сколько времени занимает функция в миллисекундах.

  • 0
    +1 за потрясающую функцию соуса, о которой я никогда не знал.
  • 0
    Исправил мою опечатку и обновил Демо .. Надеюсь, это поможет.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню