Ответ
Petr_04 28.09.2010 20:14
Доброго ...
Не знаю, каким способом Вы пользуетесь (Миша спросил: "А Вы моим классом пользовались или сами топориком работали?").
Могу сказать про свой опыт 2005 :)
1. Версия // JSHttpRequest v1.2. (C) Dmitry Koterov, 2005-01-27.
2. Что-то где-то я обрубал. В индексе (auto.p) остался такой код:
//--></script>
<script language="JavaScript"
src="../JSHttpRequest.js"></script>
<script>
function doLoad(which,rdt) {
document.getElementById(which).innerHTML = '<br><b><center>... СЕКУНДОЧКУ ...</center></b><br>';
var query = '' + rdt;
var req = new JSHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4) {
document.getElementById(which).innerHTML =
req.responseText;
}
}
req.caching = true;
req.open('GET', 'load.html', true);
req.send({ q: query });
}
var timeout = null;
function doLoadUp(which,elm) {
var tt=null;
tt=which+'&first=' + document.getElementById(elm).value + '&second=' + elm;
if (timeout) clearTimeout(timeout);
timeout = setTimeout(doLoad(which,tt), 1000);
}
</script>
3. Файл обработчик принимает (как обычно) переменные из form. Вы же форму передаёте?
Ограничения - нет экранирования и перекодировки. Использовано не в явном виде + старое + обрубленное + парсер = 5 лет работает у знакомого магазин и школьнеги с клавиатурами отдыхают :) (конкуренты периодически падают от всего (инъекции, xss и т.п.). Честно говоря, сейчас уже не вспомню, что я с ним делал, чтобы он заработал :)
Файл обработчик выглядит так:
@answer[]
^if($form:q eq "dname"){
.....
}
@main[]
$response:content-type[text/javascript]
$data[JSHttpRequest.dataReady^(
$form:id,
^[ ' ^answer[] ' ^]
^)
]
$data
Надеюсь поможет :)