Ответы пользователя по тегу Canvas
  • Падает производительность приложения?

    sheknitrtch
    @sheknitrtch
    Я вроде бы нашёл в чем причина.
    Во-первых, методом тыка было определено, что если закомментировать строку 97:

    drawBoard();
    

    То никаких тормозов в Opera не наблюдается.

    Во-вторых, если в глобальную переменную gridOn записать false, то тормоза тоже исчезают.

    Ну и в-третьих, оказалось, что достаточно добавить после 127-ой строки

    gDrawingContext.beginPath();
    

    И тормоза исчезают в Opera навсегда.

    Мне кажется, что если не вызывать beginPath, то Opera запоминает все созданные с помощью lineTo линии при каждом вызове drawBoard. И когда вызывается stroke() то рисуется сетка от всех предыдущих кадров вместе взятых. Эту гипотезу нужно ещё проверить. Но судя то тому, что вызов beginPath исправляет проблему производительности, Я думаю, дело именно в этом.
    Ответ написан
    1 комментарий