优化讲解数据请求与缓存管理
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
lyf
2026-07-16 14:43:57 +08:00
parent 72885b7f54
commit d86845afeb
11 changed files with 259 additions and 137 deletions

View File

@@ -12,6 +12,7 @@ const defaultApiBaseUrl = '/app-api'
const defaultSgsMapId = '1'
const defaultGuideStaticDataBaseUrl = '/static/guide-data'
const defaultAudioApiBaseUrl = '/app-api'
const defaultExplainRequestTimeoutMs = 8000
const normalizeMode = (mode: string | undefined): DataSourceMode => {
if (mode && allowedModes.has(mode as DataSourceMode)) {
@@ -43,9 +44,9 @@ const normalizeUrl = (url: string | undefined, fallback: string) => {
return normalized || fallback
}
const normalizeTimeout = (timeoutValue: string | undefined) => {
const normalizeTimeout = (timeoutValue: string | undefined, fallback = defaultSdkTimeoutMs) => {
const timeout = Number(timeoutValue)
return Number.isFinite(timeout) && timeout > 0 ? timeout : defaultSdkTimeoutMs
return Number.isFinite(timeout) && timeout > 0 ? timeout : fallback
}
const inferOrigin = (url: string) => {
@@ -91,6 +92,15 @@ export const dataSourceConfig = {
sgsMapEngineUrl: normalizeUrl(import.meta.env.VITE_SGS_H5_ENGINE_URL, defaultSgsEngineUrl),
sgsSdkTargetOrigin: import.meta.env.VITE_SGS_SDK_ORIGIN?.trim() || '',
sgsSdkTimeoutMs: normalizeTimeout(import.meta.env.VITE_SGS_SDK_TIMEOUT_MS),
// Keep the historical SGS timeout independent from explain/catalog requests.
explainApiTimeoutMs: normalizeTimeout(
import.meta.env.VITE_EXPLAIN_API_TIMEOUT_MS || import.meta.env.VITE_GUIDE_CONTENT_TIMEOUT_MS,
defaultExplainRequestTimeoutMs
),
audioApiTimeoutMs: normalizeTimeout(
import.meta.env.VITE_AUDIO_API_TIMEOUT_MS || import.meta.env.VITE_EXPLAIN_API_TIMEOUT_MS,
defaultExplainRequestTimeoutMs
),
publicSameOriginAssetHost: import.meta.env.VITE_PUBLIC_SAME_ORIGIN_ASSET_HOST?.trim() || '',
publicLegacyAudioHost: import.meta.env.VITE_PUBLIC_LEGACY_AUDIO_HOST?.trim() || ''
}