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()
하지만 toTime.call()
, 당신은 평가를 피해야하기 때문에.
제휴하지 않습니다 StackOverflow