使用预加载字体可以加快文档首次打开速度
即提前下载或缓存字体文件,在编辑器启动时可以省略字体下载过程,大大提高编辑器启动速度
应用登陆系统后,开始后台下载默认使用到的字体文件
预加载字体数据示例代码如下,应用可灵活实现自已的预加载字体代码。
- 应用代码实现目的:在打开病历前,提前取得几种默认字体的数据
async LoadPreData()
{
global.pre_data_map = {};
var fontFileNameStr = "FZSSJW.TTF";
var url = "/system/user_font/" + fontFileNameStr;
let response = await fetch(url, {credentials:'same-origin'});
if(response.ok)
{
let data =await response.arrayBuffer();
global.pre_data_map[fontFileNameStr] = data;
}
fontFileNameStr = "FZFSJW.TTF";
url = "/system/user_font/" + fontFileNameStr;
response = await fetch(url, {credentials:'same-origin'});
if(response.ok)
{
let data =await response.arrayBuffer();
global.pre_data_map[fontFileNameStr] = data;
}
}
监听”preFontData”事件
ThinkEditor.addEventListener("preFontData", this.OnPreFontData);
使用预下载字体数据
- 使用接口LoadFont()加载字体数据
注意:
- 返回false表示使用预加载字体数据,中断内置字体获取
- 注意: 返回true表示尝试内置字体获取
OnPreFontData(e){
console.log(e);
var data = e.data;
var fontFileNameStr = data.name;//示例: FZSSJW.TTF
var fontArrayBuffer = null;
try{
fontArrayBuffer = global.pre_data_map[fontFileNameStr];
console.log('存在预加载字体数据:' + fontFileNameStr );
ThinkEditor.LoadFont(fontFileNameStr,fontArrayBuffer);
return false;//注意:返回false表示中断编辑器字体获取
}
catch(e)
{
console.log('未找到预加载字体数据:' + fontFileNameStr );
return true;//注意:返回true表示继续编辑器字体获取
}
},
文档更新时间: 2024-11-25 15:32 作者:admin