Я создаю приложение с помощью библиотеки Google Closure и ее компилятора.Для отладки значений я использую console.log()
.Компиляция этого вызовет следующее исключение JSC_UNDEFINED_VARIABLE. variable console is undeclared at ...
.Чтобы решить эту ошибку, мне просто нужно было использовать window.console.log()
.
Я также хочу измерить время, которое занимает функция.Firebug имеет две замечательные функции console.time(name)
и console.timeEnd(name)
, которые очень легко делают это.К сожалению, Closure Compiler не поддерживает эти функции, выдавая следующее предупреждение JSC_INEXISTENT_PROPERTY. Property time never defined on Window.prototype.console at ...
.К сожалению, вы не можете решить это предупреждение с добавлением window
.
Я также взглянул на библиотеку, но goog.debug.Console не имеет нужной мне функции.
Другое решение, которое я использовал ранее, было что-то вродеследующий
var start = new Date();
// do something
var end = new Date();
// do some calculation to get the ms for both start and end
var startMS = ....;
var endMS = .....;
// get the difference and print it
var difference = (endMS - startMS) / 1000;
console.log('Time taken for something: ' + difference);
Это немного слишком много кода, если вы используете его очень часто, и версия с двумя функциями будет отличной:
window.console.time("timeTaken");
// do something
window.console.timeEnd("timeTaken");
Это распечатываетMS между началом и концом.Но, как упоминалось выше, это не работает с компилятором закрытия.У кого-нибудь есть решение для этого, как я могу использовать эти две функции window.console.time()
и window.console.timeEnd()
?Или, может быть, другое решение, которое предоставляет goog.closure, но я не нашел?