feat: 添加服务模块到加载顺序,优化工作区状态加载逻辑,支持预加载和直接获取

This commit is contained in:
catlog22
2026-01-12 22:31:32 +08:00
parent ecaa011502
commit 5259bf48b2
2 changed files with 23 additions and 15 deletions

View File

@@ -104,6 +104,7 @@ const MODULE_FILES = [
'help-i18n.js', // Help page translations 'help-i18n.js', // Help page translations
'utils.js', 'utils.js',
'state.js', 'state.js',
'services.js', // CacheManager, EventManager, PreloadService - must be before main.js
'api.js', 'api.js',
'components/theme.js', 'components/theme.js',
'components/modals.js', 'components/modals.js',

View File

@@ -174,10 +174,18 @@ async function refreshWorkspaceIndexStatus(forceRefresh) {
window.eventManager.on('data:updated:workspace-status', _workspaceStatusHandler); window.eventManager.on('data:updated:workspace-status', _workspaceStatusHandler);
} }
// 3. Trigger background loading // 3. Trigger background loading (with fallback to direct fetch)
if (window.preloadService) {
try { try {
var freshData = await window.preloadService.preload('workspace-status', { force: forceRefresh }); var freshData;
if (window.preloadService) {
freshData = await window.preloadService.preload('workspace-status', { force: forceRefresh });
} else {
// Fallback: direct fetch if preloadService not available
var path = encodeURIComponent(projectPath || '');
var response = await fetch('/api/codexlens/workspace-status?path=' + path);
if (!response.ok) throw new Error('HTTP ' + response.status);
freshData = await response.json();
}
render(freshData); render(freshData);
} catch (err) { } catch (err) {
console.error('[CodexLens] Failed to load workspace status:', err); console.error('[CodexLens] Failed to load workspace status:', err);
@@ -190,7 +198,6 @@ async function refreshWorkspaceIndexStatus(forceRefresh) {
'</div>'; '</div>';
} }
} }
}
if (window.lucide) lucide.createIcons(); if (window.lucide) lucide.createIcons();
} }