eval() 的线程行为在不同浏览器中是否有所不同?
-
19-08-2019 - |
题
我目前正在记录一个 AJAX 应用程序,其中包含包含某些交互时间的消息。所以我有几个地方的代码遵循这样的模式:
var startTime = new Date();
this.doFunction();
var endTime = new Date();
logger.log("doFunction took " + (endTime - startTime) + " milliseconds.");
我要做的是将计时分离到一个库函数中,该函数将函数作为参数,看起来像:
time : function(toTime) {
var startTime = new Date();
eval(toTime);
var endTime = new Date();
logger.log(toTime + " took " + (endTime - startTime) + " milliseconds.");
}
(语法可能有问题,我对JavaScript不太熟悉)
这样我就不用做计时了:
time(this.doFunction);
我的问题是,不同的浏览器有不同的行为吗 eval()
?例如将 eval 触发到一个新线程中,从而使我的计时不正确?
任何其他有关时间安排的建议将不胜感激。
其他提示
评估应该是同步的。
您不应该使用eval()
但toTime.call()
,因为你应该避免使用eval。
不隶属于 StackOverflow