Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с повторным вызовом JAVA
 
 автор: Port_Artur1   (08.07.2008 в 20:42)   письмо автору
 
 

Есть скрипт

<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

Почему до окончания первой обработки, блокируется вызов скрипта с новыми параметрами? И как это победить? ИЛИ обдурить

   
 
 автор: Crux   (09.07.2008 в 06:21)   письмо автору
 
   для: Port_Artur1   (08.07.2008 в 20:42)
 

синхронный запрос,
здесь об этом кратко но понятно: http://xmlhttprequest.ru/#use

   
 
 автор: Port_Artur1   (09.07.2008 в 18:03)   письмо автору
 
   для: Crux   (09.07.2008 в 06:21)
 

При синхронном режиме происходит буферизация параметров которые затем передаются скрипту.
И в данном случае иногда происходит зависание.

Наилучшим способом было бы прерывание выполнения запроса при очередном вызове функции

Такое Возможно?

   
 
 автор: Crux   (09.07.2008 в 19:39)   письмо автору
 
   для: Port_Artur1   (09.07.2008 в 18:03)
 

по тойже ссылке посмотрите про метод abort()

   
 
 автор: Port_Artur1   (09.07.2008 в 21:01)   письмо автору
 
   для: Crux   (09.07.2008 в 19:39)
 

Метод увидел, а вот в каком месте его написать что-то не пойму по примеру вверху подскажите где мне его лучше использовать?

   
 
 автор: Crux   (10.07.2008 в 05:46)   письмо автору
 
   для: Port_Artur1   (09.07.2008 в 21:01)
 

попробуйте в первых строчка ф-ции sendRequest

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования