실행 취소·다시 실행 모델

Ctrl+Z가 브라우저 undo인지 앱 undo인지 혼합되면 사용자 경험이 깨집니다. 정책을 명시하세요.

개요

에디터 → 히스토리 관리와 함께 읽으세요. 여기서는 contenteditable과 WASM 모델이 공존할 때 누가 undo를 소유하는지를 강조합니다.

브라우저 undo

편집 가능 영역에 대한 브라우저 자체 undo가 있습니다. 프로그래밍 방식 DOM 변경·execCommand는 스택을 비우거나 나눌 수 있어 브라우저마다 다릅니다.

모델 히스토리

견고한 에디터는 보통 Rust에서 역연산 또는 스냅샷으로 모델 히스토리를 구현하고 DOM을 다시 그립니다. beforeinput으로 가로채기 등은 지원 범위를 확인해야 합니다.

브라우저 undo와 앱 undo가 동시에 살아 있으면 사용자에게 혼란입니다. 텍스트 편집에 하나의 권위 있는 히스토리를 두세요.

WASM 트랜잭션

Rust에서 변경을 트랜잭션으로 묶고, undo는 역연산 또는 체크포인트 롤백으로 노출합니다. DOM 패치만 JS로 넘기면 불일치가 줄어듭니다.

조합 입력

IME 조합 중 undo는 특히 깨지기 쉽습니다. 히스토리 커밋을 조합 종료 이후로 미루는 경우가 많습니다. IME·조합 입력.