Chrome은 선언적 부분 업데이트(Declarative partial updates)를 위한 새로운 API를 제안하여 DOM 업데이트 방식을 개선하려 함
이 API는 HTML 스트리밍(Streaming HTML)과 결합하여 초기 페이지 로드 성능을 향상시키는 데 초점을 맞춤
Island 아키텍처(Island Architecture)와 같은 패턴을 지원하여 웹 페이지의 동적 업데이트를 효율적으로 처리
개발자들은 Google의 새로운 표준 제안에 대해 긍정적 기대와 함께 우려를 표명함
Chrome은 선언적 부분 업데이트(Declarative Partial Updates) API를 통해 DOM 업데이트를 위한 새로운 방식을 제시한다. 이 API는 HTML 내에서 처리 지침(Processing Instructions)을 사용하여 특정 부분을 업데이트하며, HTML 스트리밍(Streaming HTML)과 결합하여 초기 페이지 로드 성능을 개선한다. 특히, Island 아키텍처(Island Architecture)와 같은 패턴에서 유용하게 활용될 수 있으며, 개발자는 복잡한 JavaScript DOM 조작 없이도 동적 콘텐츠를 효율적으로 관리할 수 있다.
새로운 API는 HTML 스트리밍을 통해 페이지 로드 성능을 최적화한다. 기존에는 모든 콘텐츠가 준비될 때까지 기다려야 했지만, 이제는 초기 레이아웃(Initial Layout)을 먼저 로드하고, 나머지 콘텐츠를 스트리밍 방식으로 추가할 수 있다. 이는 메가 메뉴(Mega Menu)와 같이 초기 로드에 중요하지 않은 콘텐츠를 나중에 로드하여 페이지 렌더링 속도(Page Rendering Speed)를 향상시키는 데 기여한다. HTML의 순서 제약(Order Constraint)을 극복하여 사용자 경험을 개선한다.
API 사용에는 몇 가지 제약 사항이 존재한다. 예를 들어, 처리 지침(Processing Instructions)은 동일한 부모 요소 내에서만 업데이트할 수 있으며, 보안상의 이유로 전체 문서에 접근하는 것은 제한된다. 또한, `setHTML` 또는 `innerHTML`과 같은 메서드를 사용하여 동적으로 삽입할 경우, 중간 문서 조각(Intermediate Document Fragment) 내에서 패칭이 이루어진다. 따라서 기존 DOM을 수정할 수 없으며, 스트리밍 시 예기치 않은 결과가 발생할 수 있으므로 주의해야 한다.
커뮤니티에서는 Google의 새로운 API 제안에 대해 다양한 반응을 보이고 있다. 일부 개발자는 JavaScript 사용을 줄이고 DOM 업데이트를 단순화할 수 있다는 점에 긍정적인 반응을 보였다. 반면, Google이 새로운 표준을 제시하고, 개발자들이 따라가야 하는 상황에 대한 우려도 제기되었다. Chrome 팀은 이 API의 사용을 돕기 위해 polyfill을 제공하고 있으며, 향후 클라이언트 측 포함(Client-side Includes) 및 배칭(Batching)과 같은 기능 추가를 고려하고 있다.