有没有一种方法可以判断 Ace Editor 何时完成其内容的渲染?
Is there a method to tell when the Ace Editor has finished rendering it's content?
是否有事件描述 Ace Editor 何时完成语法高亮显示其内容?
我现在正在做的是计算 运行 这个电话需要多长时间:
var theBeforeTimes = getTimer();
var aceEditor = ace.edit("myEditor");
//setAllOptionsOn(aceEditor);
//aceEditor.addListener("everythingsDone", doneHandler);
aceEditor.setValue(myCode);
console.log(getTimer()-theBeforeTimes);
我正在尝试不同的选项,我想测试每种模式下的性能。我的意思是,我想计算没有任何扩展 运行ning 渲染需要多长时间,以及所有扩展 运行ning 渲染需要多长时间。这样,如果它很慢,我可以告诉或向用户显示它有和没有他们选择的扩展的时间。
渲染由 requestAnimationFrame
回调完成,它不受扩展的影响很大。
标记化与渲染是分开的,并且在 https://github.com/ajaxorg/ace/blob/v1.2.0/lib/ace/background_tokenizer.js#L64
超时时完成
如果您想衡量一种模式对整个文档进行标记化的速度,请使用
function measure(editor) {
var session = editor.session;
// reset cache
session.bgTokenizer.lines.length = session.bgTokenizer.states.length = 0
var l = session.getLength()
var t=performance.now()
for (var i = 0; i < l; i++) session.getTokens(i)
return performance.now()-t
}
measure(editor)
是否有事件描述 Ace Editor 何时完成语法高亮显示其内容?
我现在正在做的是计算 运行 这个电话需要多长时间:
var theBeforeTimes = getTimer();
var aceEditor = ace.edit("myEditor");
//setAllOptionsOn(aceEditor);
//aceEditor.addListener("everythingsDone", doneHandler);
aceEditor.setValue(myCode);
console.log(getTimer()-theBeforeTimes);
我正在尝试不同的选项,我想测试每种模式下的性能。我的意思是,我想计算没有任何扩展 运行ning 渲染需要多长时间,以及所有扩展 运行ning 渲染需要多长时间。这样,如果它很慢,我可以告诉或向用户显示它有和没有他们选择的扩展的时间。
渲染由 requestAnimationFrame
回调完成,它不受扩展的影响很大。
标记化与渲染是分开的,并且在 https://github.com/ajaxorg/ace/blob/v1.2.0/lib/ace/background_tokenizer.js#L64
如果您想衡量一种模式对整个文档进行标记化的速度,请使用
function measure(editor) {
var session = editor.session;
// reset cache
session.bgTokenizer.lines.length = session.bgTokenizer.states.length = 0
var l = session.getLength()
var t=performance.now()
for (var i = 0; i < l; i++) session.getTokens(i)
return performance.now()-t
}
measure(editor)