| | |
| | | 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 ====================== |
| | | |
| | |
| | | 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 |