我聘请了一名自由职业者来优化我网站的速度。她做得很快,当她完成时,得分已经达到了 90 年代中期。当时唯一的问题是我在产品页面中遇到了一个错误,但仅限于 Linux 桌面。 Windows、android、ios,所有页面加载都没有错误且快速。我可以注释掉这行精简的 JavaScript 代码,一切都按预期工作。然而,网站速度下降到 50 秒和 40 秒以上。我还收到了有关单轨列车无法加载、shopify 店面收件箱 v2 或类似内容的新错误,以及一些有关 Produce/v2 或类似内容的 404 错误。代码通过片段文件元标记呈现在 theme.liquid 文件中。元标记文件内是您的原始元标记文件,并在最底部添加了以下 javascript 精简代码行:
const Observer=new MutationObserver(e=>{e.forEach(({addedNodes:e})=>{e.forEach(e=>{1===e.nodeType&&"IFRAME"===e.tagName&&(e .src.includes("youtube.com")||e.src.includes("vimeo.com"))&&(e.setAttribute("loading","lazy"),e.setAttribute("data-src" ,e.src),e.removeAttribute("src")),1===e.nodeType&&"LINK"===e.tagName&&(e.href.includes("place")||e.href.includes ("vimo.com"))&&(e.setAttribute("data-href",e.href),e.removeAttribute("href")),1!==e.nodeType||"IMG"!== e.tagName||e.src.includes("data:image")||e.setAttribute("loading","lazy"),1===e.nodeType&&"SCRIPT"===e.tagName&&("回旋镖")==e.className&&(e.type="text/lazyload"),e.innerHTML.includes("asyncLoad")&&(e.innerHTML=e.innerHTML.replace("if(window.attachEvent)" ,"document.addEventListener('asyncLazyLoad',function(event){asyncLoad();});if(window.attachEvent)").replaceAll(", asyncLoad",", function(){}")),( e.innerHTML.includes("PreviewBarInjector")||e.innerHTML.includes("adminBarInjector"))&&(e.innerHTML=e.innerHTML.replace("DOMContentLoaded","asyncLazyLoad")),(e.src.包含(“资产/店面”)||e.src.includes(“资产/shopify_pay/”)||e.src.includes(“cdn.judge.me”))&&(e.setAttribute(“data-src”) ",e.src),e.removeAttribute("src")),(e.innerText.includes("gtm.start")||e.innerText.includes("webPixelsManager")||e.innerText.includes( "cdn.judge.me")||e.innerText.includes("boosterapps"))&&(e.type="text/lazyload"))})})});observer.observe(document.documentElement,{子列表:!0,子树:!0}); (()=>{var e=class extends HTMLElement{constructor(){super();this._shadowRoot=this.attachShadow({mode:"open"}),this._shadowRoot.innerHTML=':host img { 指针-事件:无;位置:绝对;顶部:0;左侧:0;宽度:99vw;高度:99vh;最大宽度:99vw;最大高度:99vh;'}connectedCallback(){this._fullImageEl=this._shadowRoot .querySelector("#hell"),this._fullImageEl.src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8000 8000 '%3E%3C/svg%3E"}};customElements.define("live-55",e);})();document.head.insertAdjacentHTML('afterend', ``); {{ 'boldapps.js' |资产网址 |脚本标签 }}我尝试在给出语法的地方删除并添加圆括号和方括号。我尝试添加条件语句以使代码更可靠。我尝试让营销人员检查一下。我在 Shopify 支持下尝试了多个聊天事件。我尝试将代码粘贴到v.s.代码编辑器并在那里调试它。我期望可以简单地删除“)”来修复错误。实际上,我花了几个小时尝试不同的工具来帮助调试代码。
使用此未缩小版本的代码代替上述代码。
const observer = new MutationObserver((e) => {
e.forEach(({ addedNodes: e }) => {
e.forEach((e) => {
1 === e.nodeType &&
"IFRAME" === e.tagName &&
(e.src.includes("youtube.com") || e.src.includes("vimeo.com")) &&
(e.setAttribute("loading", "lazy"),
e.setAttribute("data-src", e.src),
e.removeAttribute("src")),
1 === e.nodeType &&
"LINK" === e.tagName &&
(e.href.includes("place") || e.href.includes("vimo.com")) &&
(e.setAttribute("data-href", e.href), e.removeAttribute("href")),
1 !== e.nodeType ||
"IMG" !== e.tagName ||
e.src.includes("data:image") ||
e.setAttribute("loading", "lazy"),
1 === e.nodeType &&
"SCRIPT" === e.tagName &&
"boomerang" == e.className &&
(e.type = "text/lazyload"),
e.innerHTML.includes("asyncLoad") &&
(e.innerHTML = e.innerHTML
.replace(
"if(window.attachEvent)",
"document.addEventListener('asyncLazyLoad',function(event){asyncLoad();});if(window.attachEvent)"
)
.replaceAll(", asyncLoad", ", function(){}")),
(e.innerHTML.includes("PreviewBarInjector") ||
e.innerHTML.includes("adminBarInjector")) &&
(e.innerHTML = e.innerHTML.replace(
"DOMContentLoaded",
"asyncLazyLoad"
)),
(e.src.includes("assets/storefront") ||
e.src.includes("assets/shopify_pay/") ||
e.src.includes("cdn.judge.me")) &&
(e.setAttribute("data-src", e.src), e.removeAttribute("src")),
(e.innerText.includes("gtm.start") ||
e.innerText.includes("webPixelsManager") ||
e.innerText.includes("cdn.judge.me") ||
e.innerText.includes("boosterapps")) &&
(e.type = "text/lazyload");
});
});
});
observer.observe(document.documentElement, { childList: !0, subtree: !0 });
(() => {
var e = class extends HTMLElement {
constructor() {
super();
(this._shadowRoot = this.attachShadow({ mode: "open" })),
(this._shadowRoot.innerHTML =
":host img { pointer-events: none; position: absolute; top: 0; left: 0; width: 99vw; height: 99vh; max-width: 99vw; max-height: 99vh;");
}
connectedCallback() {
(this._fullImageEl = this._shadowRoot.querySelector("#hell")),
(this._fullImageEl.src =
"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8000 8000'%3E%3C/svg%3E");
}
};
customElements.define("live-55", e);
})();
document.head.insertAdjacentHTML("afterend", ``);
{{ 'boldapps.js' | asset_url | script_tag }}