| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Kex 02.03.2006 00:24
Хочется понять, как работает система, предложенная на http://www.ipo-design.ru/developments/httpreguest/ .. function doLoadParser(force) {
//query = значение поля "query1" формы
var query = '' + document.getElementById('query1').value;
var req = new JSHttpRequest();
req.onreadystatechange = function() {
//не понимаю, что значит readyState == 4
if (req.readyState == 4) {
//здесь выводятся значения, полученные уже из load_test.prs, написанноо на парсере.
document.getElementById('result1').innerHTML =
'MD5("'+req.responseJS.food +'") = ' +
'"' + req.responseJS.good + '"'+id+' '+pid;
}
}
req.caching = true;
//открывается файл с обработчиком...
req.open('GET', 'load_test.prs', true);
//обработчику посылается хэш, да?
req.send({ q: query });
}
var timeoutR = null;
//эта функция вызывается на onKeyUp поля формы, только я не понимаю, зачем нужен таймер??
function doLoadUpParser() {
if (timeoutR) clearTimeout(timeoutR);
timeoutR = setTimeout(doLoadParser, 100);
}А сейчас я покажу то, что для меня пока что непостежимо: #как понимаю, здесь просматриваются поля "формы", т.е. все параметры страницы. Но до меня не доходит, откуда в $forma оказывается строка вида id::q , где id - какой то номер (тоже кстати не понял какой). В qwery оказывается строка, которую мы ввели в поле формы. Я думаю, что это значение последнего поля просматриваемой "формы", но, повторюсь, откуда же в $forma такая странная строка??
^form:fields.foreach[field;value]{
$forma[$field]
$qwerty[^untaint{$value}]
}
#здесь странная строка $forma разбивается на части
#$uid - какой-то идентификатор, нужный для корректной работы кода
#а вот $suid и $q я не понимаю зачем тут нужны !! Но если их убрать, ничё не работает
^forma.match[(.*):(.*):(.*)][g]{
$uid[$match.1]
$suid[$match.2]
$q[$match.3]
}
#хэш-результат
$test[
$.food[$qwery]
$.good[^math:md5[$qwery]]
]
#отправка полученного хэша в jstestparser.js в виде
# странный идентификатор
# отладочная информация
# сам хэш, предварительно обработанный в коде из auto.p
JSHttpRequest.dataReady(
$uid,
'DEBUG INFO',
^object2js[$test]
)Наверно, это звучало немного глупо, но мне действительно не понятно как работает эта штука!! Я хотел вставить пару параметров, а не получается.