SCSAI 原生 JS 文件分析

SCSAI 原生 JS 文件分析

核心结论

30+ 个 SCSAI 原生 JS 文件(~2MB)已从 index.html 移除,由 src/SCSAI-shim.js(~5KB)替代。

原因:Vue 前端和 SCSAIBomService(index.js)通过 fetch() + AuthHeaders 直连 Node.js 代理,完全不依赖这些浏览器端 SCSAI JS 库。


加载与初始化流程(原始)

index.html 加载顺序(40 个 <script>):
──── SCSAI 基础设施 ────
  XmlHttpRequestManagerCommon.js     → XMLHttpRequest 管理(未使用)
  XmlDocument.js / XmlDocumentCommon.js → DOM 操作(未使用)
  mscorlib.js                        → Script# 运行时(IOM 基础,未使用)
  IOM.ScriptSharp.debug.js           → SCSAI IOM 类库 4334 行(未使用)
  enumerations.js                    → 枚举常量(未使用)
  client_cache.js                    → XML 缓存(未使用)
  ModalDialogHelper.js / Utils.js    → 弹窗/工具函数(未使用)
  XmlUtils.js / Xml.js               → XML 工具(未使用)
  core/Soap.js / soap_object.js      → SOAP 通信引擎(未使用)
  WebFile.js / BrowserInfo.js        → 文件/浏览器检测(未使用)
  BrowserUtils.js / GUIDManager.js   → GUID 生成(未使用)
  TopWindowHelper.js                 → 窗口管理(未使用)
  ClientControlsFactoryHelper.js     → UI 控件工厂(未使用)
  ShortcutsHelperFactory.js          → 快捷键(未使用)
  CriteriaConverter.js               → 条件转换(未使用)
  vars_storage.js                    → 变量储存(未使用)
  core/sciot_object.js               → ★ Sciot 核心 218KB(已替换)
  sciot_methods.js / sciot_ui_methods.js → 方法执行/UI(已替换)
  cryptoJS.js / md5.js / cryptohash.js → 加密(已替换)
  sciot_user.js / sciot_modules.js   → 用户/模块(已替换)
  sciot_export.js                    → 导出功能(未使用)
  core/GlobalObjectsPatch.js         → ★ 全局补丁层 879 行(已替换)
  SCSAIFileLoader.js                  → 动态加载器(未使用)
──── Utils ────
  utils/md5.js / cache.js / api-request.js → 工具函数(已替换/未使用)
  utils/error-handler.js / xml-parser.js / bom-exporter.js → (未使用)
──── 应用入口 ────
  index.js                           → ★ SCSAIBomService 4005 行(保留)
──── Vue ────
  /src/main.js                       → Vue 3 应用(保留)

文件分类

✅ 必须保留(已集成到 shim 或保留原加载)

| 文件 | 原因 | 处理方式 |

|------|------|----------|

| index.js | 定义 SCSAIBomService + window._bomService | 保留 script 标签 |

| src/SCSAI-shim.js | 替代所有 SCSAI 原生 JS 的轻量存根 | 新增,main.js import |

🔄 已替换为存根(文件保留在磁盘,从 HTML 移除)

原文件存根内容
mscorlib.js无 — 无用
IOM.ScriptSharp.debug.js (4334行)window.IomFactory / window.IomAgent 空对象
core/sciot_object.js (218KB)window.Sciot 最小构造器 + commonProperties
sciot_methods.jsSciot.prototype 上的方法由 index.js._ensureSciotMethods() 补丁
sciot_modules.jswindow.SciotModules 空对象
sciot_user.jswindow.sciot 实例 + commonProperties
core/GlobalObjectsPatch.js所有补丁已内联进 shim
cryptoJS.js + md5.js + cryptohash.jswindow.MD5Util 纯 JS 实现
utils/md5.jswindow.MD5Util 已包含 MD5

❌ 完全未使用(可删除)

文件说明
common/javascript/XmlHttpRequestManagerCommon.jsXMLHttpRequest 管理,未引用
common/javascript/XmlDocument.jsXML DOM 操作,未引用
common/javascript/XmlDocumentCommon.jsXML 辅助,未引用
enumerations.js枚举常量,未引用
client_cache.jsXML 缓存,未引用
ModalDialogHelper.jsSCSAI 弹窗,未引用
Utils.jsSCSAI 工具函数,未引用
XmlUtils.jsXML 工具,未引用
Xml.jsXML 处理,未引用
core/Soap.jsSOAP 引擎,未引用
soap_object.jsSOAP 对象,未引用
WebFile.js文件处理,未引用
BrowserInfo.js浏览器检测,未引用
BrowserUtils.js浏览器工具,未引用
GUIDManager.jsGUID 生成,未引用
TopWindowHelper.jsTOP 窗口管理,未引用
ClientControlsFactoryHelper.js控件工厂,未引用
ShortcutsHelperFactory.js快捷键,未引用
CriteriaConverter.js条件转换,未引用
vars_storage.js变量存储,未引用
sciot_ui_methods.jsUI 方法,未引用
sciot_export.js导出功能,未引用
SCSAIFileLoader.js动态加载器,未引用
utils/api-request.jsAPI 请求工具,未引用
utils/error-handler.js错误处理,未引用
utils/xml-parser.jsXML 解析,未引用
utils/bom-exporter.jsBOM 导出,未引用
utils/cache.js缓存工具,未引用
全部 SCSAI/ai/ 目录DeepSeek/LLM 集成,未引用
全部 SCSAI/Classes/ 目录SCSAI 类视图,未引用
全部 SCSAI/CultureInfo/ 目录国际化资源,未引用

⚠️ 可保留但建议移除(从 HTML 删除,留磁盘备份)

文件说明
utils/md5.jsMD5 已内联进 shim
utils/cache.js缓存逻辑已由 index.js 内置实现
utils/bom-exporter.jsBOM 导出功能未在前端使用(服务端有实现)

优化效果

指标优化前优化后
index.html 标签数40 个2 个(index.js + main.js)
Vite 构建警告40 条1 条(仅 index.js)
浏览器加载 SCSAI JS~2MB~5KB(存根)
首屏加载时间估计增加 500-1500ms消除 SCSAI 脚本加载阻塞
可维护性依赖 30+ 散落文件统一在 src/SCSAI-shim.js

实际数据流(验证)

Vue 管理视图 (CustomerManagement.vue 等)
  → window._bomService._SCSAIApiRequest('ApplyItem', aml)
    → fetch('/SCSAI-api/', { headers: { AUTHUSER, AUTHPASSWORD, DATABASE } })
      → Node.js 服务端代理 (server.js /api/SCSAI-proxy 路由)
        → http.request → SCSAI InnovatorServer.aspx
          → XML 响应
            → _parseAMLResponse() → 返回 JSON

此路径完全不经过任何 SCSAI 浏览器端 JS 文件。

← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁