forgot to add 'typingTest', which main depends on
parent
d852c578d8
commit
941f5361ea
@ -0,0 +1,64 @@
|
||||
define(function () {
|
||||
var setRandomizedInterval = function (func, target, range) {
|
||||
var timeout;
|
||||
var again = function () {
|
||||
timeout = setTimeout(function () {
|
||||
again();
|
||||
func();
|
||||
}, target - (range / 2) + Math.random() * range);
|
||||
};
|
||||
again();
|
||||
return {
|
||||
cancel: function () {
|
||||
if (timeout) {
|
||||
clearTimeout(timeout);
|
||||
timeout = undefined;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
var testInput = function (el, offset, cb) {
|
||||
var i = 0,
|
||||
j = offset,
|
||||
input = "The quick red fox jumps over the lazy brown dog. ",
|
||||
l = input.length,
|
||||
errors = 0,
|
||||
max_errors = 15,
|
||||
interval;
|
||||
var cancel = function () {
|
||||
if (interval) { interval.cancel(); }
|
||||
};
|
||||
|
||||
interval = setRandomizedInterval(function () {
|
||||
cb();
|
||||
try {
|
||||
el.replaceData(j, 0, input.charAt(i));
|
||||
} catch (err) {
|
||||
errors++;
|
||||
if (errors >= max_errors) {
|
||||
console.log("Max error number exceeded");
|
||||
cancel();
|
||||
}
|
||||
|
||||
console.error(err);
|
||||
var next = document.createTextNode("");
|
||||
window.inner.appendChild(next);
|
||||
el = next;
|
||||
j = 0;
|
||||
return;
|
||||
}
|
||||
i = (i + 1) % l;
|
||||
j++;
|
||||
}, 200, 50);
|
||||
|
||||
return {
|
||||
cancel: cancel
|
||||
};
|
||||
};
|
||||
|
||||
return {
|
||||
testInput: testInput,
|
||||
setRandomizedInterval: setRandomizedInterval
|
||||
};
|
||||
});
|
Loading…
Reference in New Issue