css cachign

This commit is contained in:
CoolElectronics 2024-02-19 11:10:24 -05:00
parent 696a60ee1e
commit 12fe739da4
No known key found for this signature in database
GPG key ID: F63593D168636C50

7
css.js
View file

@ -1,5 +1,5 @@
Object.assign(window, { css, rule, styled: { new: css, rule: rule } }); Object.assign(window, { css, rule, styled: { new: css, rule: rule } });
const cssmap = {};
function scopify_css(uid, css) { function scopify_css(uid, css) {
const virtualDoc = document.implementation.createHTMLDocument(""); const virtualDoc = document.implementation.createHTMLDocument("");
const virtualStyleElement = document.createElement("style"); const virtualStyleElement = document.createElement("style");
@ -20,6 +20,9 @@ function scopify_css(uid, css) {
return cssParsed; return cssParsed;
} }
function tagcss(strings, values, isblock) { function tagcss(strings, values, isblock) {
let cached = cssmap[strings[0]];
let cachable = strings.length == 1;
if (cachable && cached) return cached;
const uid = `dl${Array(5) const uid = `dl${Array(5)
.fill(0) .fill(0)
.map(() => { .map(() => {
@ -68,6 +71,8 @@ function tagcss(strings, values, isblock) {
styleElement.textContent = `.${uid} { ${flattened_template.join("")}; }` styleElement.textContent = `.${uid} { ${flattened_template.join("")}; }`
} }
if (cachable) cssmap[strings[0]] = uid;
return uid; return uid;
} }
export function rule(strings, ...values) { export function rule(strings, ...values) {