Проверяет понимание различий между Canvas и SVG и умение выбирать подходящую технологию для отрисовки графики в браузере.
Canvas и SVG решают одну задачу — рисование графики в браузере, но принципиально по-разному. Canvas — это растровый холст: вы получаете область пикселей и рисуете на ней через JavaScript-команды. Браузер не хранит информацию о том, что именно вы нарисовали, — только итоговые пиксели. SVG — это векторный формат, где каждый элемент (круг, путь, текст) становится частью DOM и описывается декларативно.
const canvas = document.getElementById('c');
const ctx = canvas.getContext('2d');
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (let i = 0; i < 5000; i++) {
ctx.beginPath();
ctx.arc(Math.random() * 800, Math.random() * 600, 2, 0, Math.PI * 2);
ctx.fill();
}
requestAnimationFrame(draw); // постоянная перерисовка
}
draw();
<svg width="200" height="200">
<circle cx="100" cy="100" r="50" fill="tomato"
onclick="alert('clicked')" />
</svg>
В SVG обработчик клика вешается прямо на элемент, а в Canvas пришлось бы вручную проверять координаты клика относительно каждой фигуры. Зато при 5000 анимированных кругах SVG начнёт тормозить, а Canvas справится легко.
Итог: выбирайте Canvas, когда важна производительность при большом числе объектов и вы готовы управлять отрисовкой вручную; SVG — когда нужна декларативность, доступность и простое взаимодействие с отдельными элементами.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
HTML
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию