预加载静态资源
从版本 9.0 开始,您可以在打开文档前将静态资源(HTML、CSS、JS、字体)预加载到浏览器缓存中,以加快文档编辑器首次加载的速度。
预加载有两种方式。
选项 1:使用 ?preload=placeholder 参数
将 ?preload=placeholder
参数附加到 api.js
的 URL 中:
<div id="placeholder"></div>
<script type="text/javascript" src="https://documentserver/web-apps/apps/api/documents/api.js?preload=placeholder"></script>
其中,documentserver 是安装了 ONLYOFFICE 文档的服务器名称。
在此种情况下,除了创建 DocsAPI.DocEditor
之外,DOM 中还会自动插入一个隐藏的 <iframe>
(其 id="placeholder"
),该 iframe 会在后台加载编辑器的静态资源。
选项 2:手动插入预加载 iframe
另一种方法是,您可以手动插入一个指向预加载页面的隐藏 <iframe>
:
<iframe src="https://documentserver/web-apps/apps/api/documents/preload.html" style="display:none;"></iframe>
其中,documentserver 是安装了 ONLYOFFICE 文档的服务器名称。
如果您需要为 iframe 设置额外的安全参数,或使用 nonce 将其插入 DOM,建议使用此方法。
使用
<iframe>
来进行预加载,而不是<link rel="prefetch">
。编辑器的静态资源(脚本、样式、字体)会在 iframe 的上下文中加载,而<link rel="prefetch">
则无法正确触发静态资源的加载或缓存。