mirror of
https://github.com/MercuryWorkshop/dreamlandjs.git
synced 2025-05-15 23:20:01 -04:00
css cachign
This commit is contained in:
parent
696a60ee1e
commit
12fe739da4
1 changed files with 6 additions and 1 deletions
7
css.js
7
css.js
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue