yangyin
2024-12-06 aae8dfec85c5bdd7c074c78275ec031707b4abed
customer_list/ch/index.js
@@ -16,77 +16,3 @@
title.innerText = sysName;
faviconIcon.href = icon + `?v=1`;
//#region ====================== LCP Promise ======================
const loadBaseLCP = new Promise((resolve, reject) => {
   try {
      // 检查是否支持 PerformanceObserver 和 LCP 指标
      if ('PerformanceObserver' in window && PerformanceObserver.supportedEntryTypes.includes('largest-contentful-paint')) {
         const observer = new PerformanceObserver((list) => {
            window.list = list.getEntries();
            for (const entry of list.getEntries()) {
               resolve(entry);
               observer.disconnect(); // 完成后断开观察者
            }
         });
         observer.observe({ type: 'largest-contentful-paint', buffered: true });
      } else {
         // 不支持时 使用onLoad 加载
         window.addEventListener('load', () => {
            resolve(true);
         });
      }
   } catch (error) {
      reject(error);
   }
});
//#endregion
//#region ====================== 加载script ======================
function loadScript(src, callback) {
   const script = document.createElement('script');
   script.setAttribute('type', 'text/javascript');
   script.setAttribute('src', src);
   script.async = true;
   script.onload = () => callback();
   script.onerror = () => callback(new Error(`Failed to load ${src}`));
   document.head.appendChild(script);
}
window.eventList = {};
loadBaseLCP.then(() => {
   window.eventList.amisSdkJsPromise = new Promise((resolve, reject) => {
      loadScript('/static/amis/sdk/sdk.js', (error) => {
         if (error) {
            reject(error);
            return;
         }
         resolve();
      });
   });
});
//#endregion
//#region ====================== 加载样式 ======================
function loadStyles(styles) {
   for (const path of styles) {
      const style = document.createElement('link');
      style.setAttribute('rel', 'stylesheet');
      style.setAttribute('type', 'text/css');
      style.setAttribute('href', path);
      // 设置 print 可以避免阻塞页面渲染
      style.setAttribute('media', 'print');
      style.onload = () => {
         style.setAttribute('media', 'all');
      };
      document.head.appendChild(style);
   }
}
loadBaseLCP.then(() => {
   loadStyles(['/static/amis/sdk/sdk.css', '/static/amis/sdk/helper.css', '/static/amis/sdk/iconfont.css']);
});
//#endregion