Html程序  |  62行  |  1.53 KB

<html>
<head>
<script language="javascript">
var last = new Date();    // The last time we sampled the timer
var total_value = 0;      // The sum of the intervals measured
var total_count = 0;      // The count of the intervals measured
var last_interval = 1;
function fire() {

  var current = new Date();
  var ms = current - last;

  total_value += ms;
  total_count++;

  // Display the interval output.
  var output = document.getElementById('output');
  output.innerHTML = ms + "ms";

  // Display the average output.
  var average = document.getElementById('average');
  average.innerHTML = total_value / total_count + "ms";

  // Get the new interval from the input.
  var input = document.getElementById('input');

  // If the interval has changed, reset our averages.
  if (input.value != last_interval) {
    total_value = 0;
    total_count = 0;
  }
  last_interval = input.value;

  last = new Date();
  setTimeout(fire, last_interval);
}
</script>
</head>

<body onload='setTimeout("fire()", 1)'>

<h1>Test JS setTimeout() speed</h1>

This page tests the frequency of setTimeout() in the browser.
Javascript applications use setTimeout() as a mechanism to 'yield'
to the browser so that the browser can repaint.  Most browsers
implement a 15ms setTimeout() minimum.  Use this to page to measure
setTimeout() lag and discover your browser's minimum interval.<P>

<hr>

Desired ms to delay: <input id="input" type="text" value="1"><P>

Measured delay:<br>
<ul>
instance: <div id="output"></div>
average: <div id="average"></div>
</ul>

</body>
</html>