|
|
|
| Есть скрипт
<script type="text/javascript">
var httpRequest = createHttpRequest();
var resultId = '';
function createHttpRequest()
{
var httpRequest;
var browser = navigator.appName;
if (browser == "Microsoft Internet Explorer")
{
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
httpRequest = new XMLHttpRequest();
}
return httpRequest;
}
function sendRequest(file, _resultId, getRequestProc)
{
resultId = _resultId;
document.getElementById(resultId).innerHTML = '<img src="24-0.gif" width="24" height="24">';
var txt = document.getElementById("d1").value;
httpRequest.open('post', file);
httpRequest.onreadystatechange = getRequestProc;
httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=windows-1251");
httpRequest.send("d1="+txt);
}
function getRequest()
{
if (httpRequest.readyState == 4)
{
document.getElementById(resultId).innerHTML = httpRequest.responseText;
}
}
</script>
|
и всё работает если нажимаю Enter при такой обработке. Всё нормально обрабатывается
<input id="domen1" name="domen" type="TEXT" class="check" size="21" maxlength="63" onKeyPress="if (event.keyCode==13) sendRequest('d_x.php','result',getRequest);" >
|
но если пишу так
<input id="domen1" name="domen" type="TEXT" class="check" size="21" maxlength="63" onKeyUp="sendRequest('d_x.php','result',getRequest);" >
|
то например, если нажимаю 2 происходит обработка цифры 2
НО, если нажимаю подряд 234, то всё равно обрабатывается 2
нажимая первую цифру 2 - я вызываю скрипт d_x.php с параметром 2 так вот пока происходит оработка первого запроса, то скрипт пропускает остальные нажатия клавиш
если продолжаю нажимать кнопки, то как только заканчивается обработка цифры 2 и выводиться результат, при очередном (бесконечном) нажатием мной цифр 23456789465 происходит очередной запрос к скрипту d_x.php но уже с параметром 23456789465
Почему не орабатываются цифры 345678946 заключённые между 2 и 5
Почему до окончания первой обработки, блокируется вызов скрипта с новыми параметрами? И как это победить? ИЛИ обдурить | |
|
|
|
|
|
|
|
для: Port_Artur1
(08.07.2008 в 20:42)
| | синхронный запрос,
здесь об этом кратко но понятно: http://xmlhttprequest.ru/#use | |
|
|
|
|
|
|
|
для: Crux
(09.07.2008 в 06:21)
| | При синхронном режиме происходит буферизация параметров которые затем передаются скрипту.
И в данном случае иногда происходит зависание.
Наилучшим способом было бы прерывание выполнения запроса при очередном вызове функции
Такое Возможно? | |
|
|
|
|
|
|
|
для: Port_Artur1
(09.07.2008 в 18:03)
| | по тойже ссылке посмотрите про метод abort() | |
|
|
|
|
|
|
|
для: Crux
(09.07.2008 в 19:39)
| | Метод увидел, а вот в каком месте его написать что-то не пойму по примеру вверху подскажите где мне его лучше использовать? | |
|
|
|
|
|
|
|
для: Port_Artur1
(09.07.2008 в 21:01)
| | попробуйте в первых строчка ф-ции sendRequest | |
|
|
|