wujingjing
2024-11-18 0dae04f930427a728cecffa585884713755fac24
customer_list/yw/index.js
@@ -14,7 +14,32 @@
keywordsTag.content = `${briefCorpName},${sysName}`;
descriptionTag.content = `${briefCorpName},${sysName}`;
title.innerText = sysName;
faviconIcon.href = icon;
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 ======================
@@ -28,14 +53,40 @@
   document.head.appendChild(script);
}
window.eventList = {};
window.eventList.amisSdkJsPromise = new Promise((resolve, reject) => {
   loadScript('/static/amis/sdk/sdk.js', (error) => {
      if (error) {
         reject(error);
         return;
      }
      resolve();
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