From fc1139f51d146ba21f9e2b05f9296d92c4dfeaa3 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Sat, 30 May 2026 15:02:29 +0300 Subject: [PATCH] =?UTF-8?q?feat(lab-content-engine):=20phase=203=20-=20?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B2=D0=B0=D1=8F=20=D0=B7=D0=B0=D0=B3?= =?UTF-8?q?=D1=80=D1=83=D0=B7=D0=BA=D0=B0=20=D0=BA=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D1=81=D0=B8=D0=BC=D1=83=D0=BB=D1=8F=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Старт /lab грузит только каркас (~530KB) вместо ~2.9MB + three.js(~600KB): - _loader.js — LabLoader.ensure(id): грузит файлы симуляции по манифесту + three.js при необходимости; кеш по URL; САМОВОССТАНОВЛЕНИЕ (если open-функция не определена после загрузки — грузит все ленивые файлы -> корректность гарантирована независимо от точности манифеста) - _sim_deps.js — сгенерированный манифест SIM_DEPS{id:{open,files,three}} + LAB_LAZY_FILES; three:true только для crystal/orbitals/stereo/periodic - _register-all.js — open-обёртка: LabLoader.ensure(id).then(rawOpen) - lab-init.js openSim — обработка Promise от open() (lucide после init) - lab.html — убраны 45 ленивых - + + + - - - - - - - - - - - - + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +