* [misc] add global method to get page perf data.

This commit is contained in:
sunhao
2025-05-19 10:26:26 +08:00
committed by 刘刚
parent 5fa949b9a7
commit 1376d38cd2
2 changed files with 21 additions and 1 deletions
+4
View File
@@ -218,6 +218,10 @@ function openApp(url, code, options)
const getPageInfo = openedApp.iframe.contentWindow.getPageInfo;
return getPageInfo ? getPageInfo() : null;
};
openedApp.getPerfData = () => {
const getPerfData = openedApp.iframe.contentWindow.getPerfData;
return getPerfData ? getPerfData() : null;
};
/* Update on app tabs bar */
const $tabs = $('#appTabs');
+17 -1
View File
@@ -241,6 +241,21 @@
else requestAnimationFrame(() => updateZinbar(perf, errors, basePath));
}
function getPerfData()
{
return (zinbar && zinbar.$) ? zinbar.$.state.pagePerf : null;
}
function triggerPerfEvent(stage)
{
if(!zinbar || !zinbar.$) return;
if(zinbar.lastPerfEventType === stage) clearTimeout(zinbar.lastPerfEventTimer);
zinbar.lastPerfEventTimer = setTimeout(() => {
$.apps.triggerEvent('updatePerfData.app', {stage: stage, perf: getPerfData()}, {silent: true});
}, 100);
zinbar.lastPerfEventType = stage;
}
function updatePerfInfo(options, stage, info)
{
if(!hasZinBar) return;
@@ -255,6 +270,7 @@
if(info.dataSize) perf.dataSize = info.dataSize;
}
updateZinbar(perf);
triggerPerfEvent(stage);
}
function showZinDebugInfo(data, options)
@@ -1801,7 +1817,7 @@
if($firstControl) $firstControl[0]?.focus();
}
$.extend(window, {registerRender: registerRender, fetchContent: fetchContent, loadTable: loadTable, loadPage: loadPage, postAndLoadPage: postAndLoadPage, loadCurrentPage: loadCurrentPage, parseSelector: parseSelector, toggleLoading: toggleLoading, openUrl: openUrl, openPage: openPage, goBack: goBack, registerTimer: registerTimer, loadModal: loadModal, loadTarget: loadTarget, loadComponent: loadComponent, loadPartial: loadPartial, reloadPage: reloadPage, selectLang: selectLang, selectTheme: selectTheme, selectVision: selectVision, changeAppLang, changeAppTheme: changeAppTheme, waitDom: waitDom, fetchMessage: fetchMessage, setImageSize: setImageSize, showMoreImage: showMoreImage, autoLoad: autoLoad, loadForm: loadForm, showValidateMessage: showValidateMessage, getPageInfo: getPageInfo});
$.extend(window, {registerRender: registerRender, fetchContent: fetchContent, loadTable: loadTable, loadPage: loadPage, postAndLoadPage: postAndLoadPage, loadCurrentPage: loadCurrentPage, parseSelector: parseSelector, toggleLoading: toggleLoading, openUrl: openUrl, openPage: openPage, goBack: goBack, registerTimer: registerTimer, loadModal: loadModal, loadTarget: loadTarget, loadComponent: loadComponent, loadPartial: loadPartial, reloadPage: reloadPage, selectLang: selectLang, selectTheme: selectTheme, selectVision: selectVision, changeAppLang, changeAppTheme: changeAppTheme, waitDom: waitDom, fetchMessage: fetchMessage, setImageSize: setImageSize, showMoreImage: showMoreImage, autoLoad: autoLoad, loadForm: loadForm, showValidateMessage: showValidateMessage, getPageInfo: getPageInfo, getPerfData: getPerfData});
$.extend($.apps, {openUrl: openUrl, getAppUrl: () => currentAppUrl});
$.extend($, {ajaxSendScore: ajaxSendScore, selectLang: selectLang});