제 신청서에는 복수 Fabric.js 캔버스가 있습니다. 캔버스 수에는 제한이 없습니다. Fabric.js 메서드 loadFromJson
을 통해 무거운 JSON을 렌더링하겠습니다.여러 패브릭 js 캔버스의 경우 메모리를 관리하는 방법은 무엇입니까?
캔버스를 사용하지 않는 경우 패브릭 개체 메모리를 해제하고 싶습니다. 어떻게해야합니까?
한 번에 하나의 캔버스 만 표시됩니다. 하지만 페이지가로드 될 때 모든 캔버스를 렌더링해야합니다. 캔버스는 실제로 페이지이고 사용자는 페이지 번호 또는 다른 것을 클릭하여 페이지간에 전환 할 수 있습니다.
사용자는 언제든지 어떤 캔버스로 돌아와서 낙서를하거나 다른 Fabric.js 기능을 사용할 수 있습니다. 나중에 사용할 수 있도록
<style>
.fabricCanvas {
border: 1px solid green;
margin: 5px;
}
.canvas-container {
margin: 5px;
}
</style>
<canvas class="fabricCanvas" width="300" height="300"></canvas>
<canvas class="fabricCanvas" width="300" height="300"></canvas>
<canvas class="fabricCanvas" width="300" height="300"></canvas>
<canvas class="fabricCanvas" width="300" height="300"></canvas>
내 JS 코드는 내가 인스턴스를 저장하고 직물 인스턴스
var canvasInstances = [];
$('canvas.fabricCanvas').each(function() {
var fabricCanvasObj = new fabric.Canvas(this, {
isDrawingMode: true
});
canvasInstances.push(fabricCanvasObj);
fabricCanvasObj.renderAll();
});
console.log(canvasInstances[0]);
를 저장하기 :
여기 내 HTML 구조입니다. 나는 더 나은 메모리 관리를 원한다. 기본적으로 필요할 때 인스턴스를로드하고 언로드한다.
샘플 상황 DEMO 여기입니다. 이 데모에서는 캔버스가 z- 인덱스를 사용하여 서로 위에 있음을 고려하지만 DOM의 일부이며 페이지로드시 이미 렌더링되었습니다.
의심의 여지가 있으면 알려주세요. 더 설명 할 수 있습니다.
내가 생각하는 메모리 문제는 5 개 이상의 캔버스 iPad 브라우저가 충돌 할 때가 있습니다.
안녕하세요! 나는 Kanpur에도 있고 Fabric.js 앱을 사용하고 있습니다. 연락 할 수 있니? 내 이메일 - [email protected] –