2010-10-26 5 views

ответ

39

Иногда несколько холстов дают лучшую производительность. Лучше проверить, можете ли вы позволить себе время.

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

С помощью одного холста, чтобы нарисовать окно выбора, вам придется перерисовывать все элементы снова и снова, чтобы обновить окно выбора, которое видит пользователь, так как все они находятся на одном холсте.

Или у вас могут быть две холсты, одна с объектами, а затем еще одна перед такими вещами, как «инструменты» (например, графика выбора). Здесь два холста могут быть более эффективными.

Иногда вам может понадобиться фон, который меняет очень редко и объекты переднего плана, которые меняются все время. Вместо того, чтобы перерисовывать все из них со скоростью 60 кадров в секунду, вы делаете фоновый холст и холст переднего плана, и только объекты переднего плана перерисовываются с быстрой скоростью. Здесь две полотна должны быть более эффективными, чем одна, но может быть более оптимальным «кэшировать» фоновый холст в качестве изображения и рисовать изображение сначала в каждом кадре.

+0

? Тогда при каких обстоятельствах несколько полос приводят к худшей работе? –

+2

На чрезвычайно больших холстах может быть лучше просто перерисовать простые фоновые и передние сцены (или сохранить их на изображения), чем иметь 3+ большие холсты. –

4

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

Если вы хотите, вы можете подождать, пока сделаете весь свой чертеж, пока остальная часть страницы не загрузится из функции onLoad.

+0

Вы сказали: используя графическую библиотеку javascript. не могли бы вы назвать мне это? – menardmam

+1

Мы часто использовали http://www.rgraph.net/ –

2

Один экземпляр работает гладко, больше не влияет на рендеринг на странице.

3

По словам Марка Пилигрима, рекомендуется использовать несколько холстов.

http://diveintohtml5.ep.io/canvas.html#divingin См

Использование нескольких полотен может упростить вещи на вашем конце, путем выделения областей экрана для обновления и выделения событий ввода. Если ваша страница хорошо подходит для разделяющих областей экрана, я говорю, иди за ней.

+1

Я не вижу этого конкретного цитирования в настоящее время в этой статье, и Great WayBack Machine не архивировал его :(Он был удален со временем со временем? Почему? –

+2

@ shaman.sir Это доступно здесь: http: // web.archive.org/web/20120106035725/http://diveintohtml5.ep.io/canvas.html –

+0

Это хороший учебник, но я не могу найти контент, связанный с несколькими холстами. Ссылка –

Смежные вопросы