Избавить код от функций (для вникания ибо знания JS≈0)
Насколько я понимаю, эта программа (которая получилась) начинает свой цикл во время нажатия первой клавиши и заканчивается после каждого последнего нажатия. Время начинает свой отсчёт с начала первого нажатия и длится столько времени ввода, пока человек решает остановиться, и раз остановка после каждого следующего ввода фиксируется как "время окончания". Если нажата мышь в нижнем поле после этого - тогда показывается результат ("время окончания" - время начала цикла).
<script type="text/javascript">
var timing = {
st: null,
en: null,
tx: null
}; // start, end, textbox
function initpr() {
timing.tx = document.getElementById('prin');
var tx = timing.tx;
tx.onkeypress = function () {
timing.st = timing.en = new Date();
timing.tx.onkeypress = function (en) {
if (!en) en = event;
timing.en = new Date();
}
}
}
function clc() {
r = document.getElementById('resultpr'); //результат
deltams = timing.en.getTime() - timing.st.getTime();
chars = timing.tx.value.length;
cpms = chars / deltams;
snippets = [chars, " chars (in ", deltams, " ms): ", cpms, " cpms"];
r.innerHTML = snippets.join("");
initpr();
}
</script>
<form name="foo" onsubmit="return false;">
<textarea id="prin"></textarea>
<br />
<input id="btnclc" />
<span id="resultpr"></span>
</form>
<script type="text/javascript">
document.getElementById('btnclc').onclick = clc;
initpr();
</script>
Код рабочий. http://lanother.tk/rcc.php Обкарнал до минимума (lanother.tk/) для максимума понимания в минималистичности. Было 5 функций (lanother.tk/rc.php) сейчас стало только 2 с именем. Но всё равно, нижняя функция clc вызывает в самом конце себя верхнюю initpr. И вот в ней загвоздка: если поиск initpr, то получается что их три а я хочу код мотолит и последняя функция фактически уже станит вся программа. В итоге: <script> alert( my program ); //no functions </script> <form> </form> end. Алерт это то что я знаю из начала каждой книжки - в принципе для меня это JS (то есть джаваскрипт программа). По onClick вызывалось бы всё тело программы. Я бы его разбил на строчки и сделал бы ещё компактней. (Я слабо программировал на языках и не доходил до функций, например на асме саброутины (хоть я его и больше знаю) .. до них надо было ещё дожить :) ). Хотя бы может кто знает, как убрать 3 функции одна-рыбка-в-другой. Очень угнетает. Внутри initpr ...=function... |
| Часовой пояс GMT +3, время: 02:51. |