ФорумПрограммированиеJavaScript → Ajax индикатор загрузки

Ajax индикатор загрузки

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 13 марта 2008 г. 13:24

    Заполняем форму, отправляем запрос, выскакивает картинка индикатор загрузки пока сообщение переваривается…

    Я использую ajax библиотеку Котерова…
    Обработчик событий onClick…

    Столкнулся с проблемой…проверяю не была нажата ли кнопка…а это вроде только на onSubmit срабатывает…

    подскажите как двигаться

    function doLoad(name,mail) {
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {
    if (req.readyState == 4) {
    // Write result to page element (_RESULT becomes responseJS).
    document.getElementById('result').innerHTML =
    '<b>Name : ("'+req.responseJS.name+'")</b> Mail : ' +
    '"' + req.responseJS.mail + '"<br> ';
    // Write debug information too (output becomes responseText).
    document.getElementById('debug').innerHTML = req.responseText;
    }
    }
    // Prepare request object (automatically choose GET or POST).
    req.open(null, 'smpl_backend.php', true);
    // Send data to backend.
    var quote= new Array(2)
    quote[0]= name;
    quote[1]= mail;

    req.send( { massive: quote } );
    }
    </script>

    <form>
    Text: <input type="text" name="text"><br />
    Text2: <input type="text" name="text2"><br />
    <input type="button" value="SEND"
    onclick="doLoad(this.form.text.value,this.form.text2.value)">
    </form>
    <div id="load"></div>
    <div id="result" style="border:1px solid #000; padding:2px">
    Structured results
    </div>
    <div id="debug" style="border:1px dashed red; padding:2px">
    Debug info
    </div>
  • metalalisa

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 15 марта 2008 г. 21:04, спустя 2 дня 7 часов 39 минут

    а что мешает в doLoad() добавить флаг "нажатости" кнопки? типа


    var clicked = false;
    function doLoad(name,mail) {
    if (clicked) return;
    clicked = true;
    // …
    }

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 16 марта 2008 г. 7:23, спустя 10 часов 18 минут 55 секунд

    function doLoad(name,mail) {
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {

    document.getElementById('load').innerHTML = 'L O A D I N G . . .';

    if (req.readyState == 4) {
    document.getElementById('load').innerHTML = 'Message complete';
    // Write result to page element (_RESULT becomes responseJS).
    document.getElementById('result').innerHTML =
    '<b>Name : ("'+req.responseJS.name+'")</b> Mail : ' +
    '"' + req.responseJS.mail + '"<br> ';
    // Write debug information too (output becomes responseText).
    document.getElementById('debug').innerHTML = req.responseText;
    }
    }
    // Prepare request object (automatically choose GET or POST).
    req.open(null, 'smpl_backend.php', true);
    // Send data to backend.
    var quote= new Array(2)
    quote[0]= name;
    quote[1]= mail;

    req.send( { massive: quote } );
    }

Пожалуйста, авторизуйтесь, чтобы написать комментарий!