SDK 自动加载
问题描述
在使用文档能力时,页面需要加载 sdk.js。
由于 SDK 会随着产品版本持续更新,如果通过人工下载并替换 SDK 文件的方式维护,会带来以下问题:
- ❌ SDK 更新依赖人工操作
- ❌ 多环境 SDK 版本容易不一致
- ❌ 前端直接访问 SDK 存在跨域限制
- ❌ 升级维护成本高
因此,需要一种无需人工干预的 SDK 自动加载方案。
解决方案
采用 Server 代理加载 的方式:前端请求自有 Server 的 SDK 接口,Server 从 FilezOffice 服务动态获取最新 SDK 并返回给前端,前端无需感知 SDK 版本变化。

具体流程:
- 前端请求自有 Server 的
/sdk/sdk.js - Server 调用
http://xxx/docs/version获取最新版本号clientTimeStamp - Server 根据版本号拼接实际地址
http://xxx/docs/static/${clientTimeStamp}/sdk.js,请求 SDK 文件 - Server 将 SDK 内容返回给前端
Server 仅作为代理层,不需要将 SDK 文件保存到本地。
版本接口说明
FilezOffice 服务提供版本信息接口:
http://xxx/docs/version
返回示例:
{
"clientTimeStamp": "20231227185652"
}
clientTimeStamp 即为当前 SDK 版本标识,SDK 文件地址规则:
http://xxx/docs/static/${clientTimeStamp}/sdk.js
http://xxx/docs/static/${clientTimeStamp}/sdk.esm.js
http://xxx/docs/static/${clientTimeStamp}/sdk.cjs.js
前端使用方式
前端无需关心 SDK 版本,始终加载自有 Server 的统一地址即可:
<script src="/sdk/sdk.js"></script>
方案特点
- ✅ 无需人工更新 SDK,始终加载最新版本
- ✅ 前端通过自有 Server 加载,无浏览器跨域问题
- ✅ 多环境统一 SDK 入口,维护成本低
注意事项
- Server 每次请求都会访问 FilezOffice 服务,依赖网络稳定性
- 建议对 SDK 内容增加缓存以提升性能
- 若访问量较大,可升级为 Server 端缓存方案