Я создаю страницу для сравнения производительности кода платформы JavaScript. Вот одна из страниц http://qatrix.com/benchmark/set-css-style
Моя идея - использовать независимый iframe для независимого запуска кода, чтобы сделать его без конфликтов. Функция сравнения успешно запущена и может возвращать разумные результаты, но большая проблема для этой страницы сравнения состоит в том, что она временно замораживает веб-браузер, пока выполняется код, указывающий на курсор мыши, независимо от того, где и некоторые из эффектов при наведении мыши также недоступны.
Так в чем же проблема? И как это решить? Я вижу, что на некоторых веб-сайтах по бенчмаркингу нет этой проблемы, но они просто сравнивают код на той же странице, что, я думаю, будет с конфликтами.
Вот код запуска тестов под iframe:
var benchmark_code = function ()
{
<?php echo $_GET['code'] ?>
},
benchmark = function(times)
{
var start = new Date(),
i, end;
for( i = 0; i < times; i++)
{
if( i == 0 )
{
try {
benchmark_code.call();
}
catch (e)
{
return e;
}
}
else
{
benchmark_code.call();
}
}
end = new Date();
return end - start;
};
А исходный код сравнительного анализа находится здесь (с использованием фреймворка Qatrix):
http://qatrix.com/js/benchmark.js