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,21 +174,28 @@ 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;
var freshData = await window.preloadService.preload('workspace-status', { force: forceRefresh }); if (window.preloadService) {
render(freshData); freshData = await window.preloadService.preload('workspace-status', { force: forceRefresh });
} catch (err) { } else {
console.error('[CodexLens] Failed to load workspace status:', err); // Fallback: direct fetch if preloadService not available
if (headerFtsEl) headerFtsEl.textContent = '--'; var path = encodeURIComponent(projectPath || '');
if (headerVectorEl) headerVectorEl.textContent = '--'; var response = await fetch('/api/codexlens/workspace-status?path=' + path);
if (container) { if (!response.ok) throw new Error('HTTP ' + response.status);
container.innerHTML = '<div class="text-xs text-destructive text-center py-2">' + freshData = await response.json();
'<i data-lucide="alert-circle" class="w-4 h-4 inline mr-1"></i> ' + }
(t('common.error') || 'Error') + ': ' + err.message + render(freshData);
'</div>'; } catch (err) {
} console.error('[CodexLens] Failed to load workspace status:', err);
if (headerFtsEl) headerFtsEl.textContent = '--';
if (headerVectorEl) headerVectorEl.textContent = '--';
if (container) {
container.innerHTML = '<div class="text-xs text-destructive text-center py-2">' +
'<i data-lucide="alert-circle" class="w-4 h-4 inline mr-1"></i> ' +
(t('common.error') || 'Error') + ': ' + err.message +
'</div>';
} }
} }