This is a partial polyfill for the Declarative partial updates API.
The polyfill includes a implementation of declarative patching using template elements as described in the Patching explainer.
Other implementations of the Declarative partial updates API are not yet implemented
A browser that supports ES6/ES2015 is required for this polyfill.
- HTML inserted via
setHTMLis pre-processed for<template for>instructions, but other APIs such asinnerHTMLcannot be monkey-patched for performance reasons. The polyfill we rescan the document on subsequent DOM manipulations so templates may be processed then. - New
<template for>instructions after the polyfill is loaded are processed via a mutation observer so will not happen during HTML parsing like they would for a browser that supports this natively. This may cause empty content of placeholder content in<?start>/<?end>processing instruction to show initially, where this would not happen when the API is supported natively.
npm install template-for-polyfill<script type="module" src="./template-for-polyfill/dist/template-for-polyfill.js"><script src="https://unpkg.com/template-for-polyfill"></script>git clone https://github.com/GoogleChromeLabs/template-for-polyfill
cd template-for-polyfill
npm i
npm test # Tests should pass
npm run build # Outputs minified polyfill to dist/<script src="/path_to_polyfill/template-for-polyfill.js"></script>We'd love to accept your patches and contributions to this project. See the enclosed CONTRIBUTING.md for details.
This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.