Сосредоточение внимания на элементе canvas снижает производительность обработки JS-страницы. - PullRequest
1 голос
/ 01 июня 2011

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

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

Когда страница загружается, а холст не выбран, кажется, что эскиз отображается в разумном темпе.Однако, если я щелкну черный фон элемента canvas, рисунок начнёт рисоваться заметно медленнее.Если щелкнуть где-нибудь еще, например, за пределами браузера или в строке URL-адреса, чтобы убрать фокус с элемента canvas, производительность вернется к исходной точке загрузки страницы.

, так что 2 вопроса:

1) Почему это происходит?

2) Есть ли способ предотвратить это?Я представляю себе, что пользователь вообще не может фокусировать элемент canvas, но открыт для любых предложений.

Я попробовал эти ответы, question1 , question2 в отношении отключения выбора пользователем холста, но безуспешно.

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Потратив некоторое драгоценное время команды ProcessingJS, которое вы можете найти по ссылке ticket , они обнаружили, что ошибка была в моем HTML-файле.

Я ленился, когда помещалвместе HTML-файл, и пропустил элемент заголовка, поэтому он выглядел так:

<script src="processing.js"></script>
<canvas id="graph_canvas" data-processing-sources="Main.pde ....">
</canvas>

, который, как указала команда ProcessingJS, на самом деле не является действительным файлом HTML (вообще),так как ему не хватает элементов <head><body> и т.д ...

По какой-то причине неправильно отформатированный HTML-файл вызывал поведение, показанное на снимках экрана выше.Как только я добавил все обычные обязательные элементы, производительность в браузерах была хорошей, с холстом сфокусированным или не сфокусированным.

0 голосов
/ 01 июня 2011

Это интересно и достойно того, чтобы сообщить нам об ошибке (processing.js). Можете ли вы это сделать и / или найти нас на irc.mozilla.org/processing.js? Мы должны выяснить, почему это происходит.

...