Сообщение «Ожидание ответа» при вызове Ajax - PullRequest
1 голос
/ 20 мая 2011

Когда я использую Ajax call (jquery) в разделе HEAD, я нахожу «ожидающее ответное сообщение» в браузере Chrome с вращающимся кругом. Я не хочу этот уродливый взгляд. Есть ли способ избежать этого?


PS: когда я использую тег ввода для вызова функции JavaScript (Ajax), например,

<input id="launcher" type="button" onfocus="go()" value="Go!"></input>

Я не мог видеть кружок ожидания. Потому что моя программа должна вызывать функцию автоматически, я не мог использовать этот метод. (Если я использую document.getElementById("launcher").focus() для автоматического запуска функции, она снова показала кружок ожидания.) Я полагаю, что есть некоторый другой контекст для вызова функции JavaScript.

Обновление Вот мой пример кода

<HEAD>
<SCRIPT TYPE="text/javascript">
function go() {
    $.ajax({
        url: "/myService",
        success: function(data){
            document.getElementById("result_area").innerHTML = data;
            go();
        }
    });
}
$(document).ready(function(){
    go() //Here I want to Comet call;
});
go(); //should start automatically.
</SCRIPT>
</HEAD>
<BODY>
    <!-- <input id="launcher" type="button" onfocus="go()" value="Go!"></input>
    This doesn't show the waiting circle. Why? Use different call context? -->        
<div id="result_area"></div>
</BODY>

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

есть некоторые проблемы, которые я хочу выделить

<input id="launcher" type="button" onfocus="go()" value="Go!"></input>

это должно быть

<input  type="button" id="launcher" value="Go!" />

, затем

  • , если вы хотите изображение вместо текстазатем поместите div перед формой с display: none
  • in ajax вызовите, что вы не пишете URL-ссылку с расширением ( .php или .html или .js )

  • успешно: вы снова вызываете go(), этот запах похож на рекурсивную функцию

  • какие данные вы отправляете на сервер ?? data: отсутствует в опции ajax
  • также упомяните dataType (необязательно)
  • если вы не хотите запускать ajax автоматически, сделайте это на некоторыхсобытие (как я делаю по клику)
  • привязать с готовым документом
  • написать код javascript в голове (рекомендуется писать перед </body>)

я изо всех сил старался рассказать вам основную, вот мой путь

HTML

<div id="waiting" style="display: none;">
    <img src="images/ajax-loader.gif" title="Loader" alt="Loader" />
</div>
<form>
     // here is your form
</form>

jQuery

<SCRIPT TYPE="text/javascript">
$(document).ready(function(){
$('#waiting').show(500);
// instead run automatically now it will work on click of button
$('#launcher').click( function () {      
    $.ajax({
          url: "/myService.html", // or whatever page 
          // by the way where is data which you sent on server??
          data: { email : $('#email').val() }, // like i send the email to the serever
             dataType : "json",
             async : false,
          success: function(data){
            $('#waiting').hide();
            $("#result_area").html(data);
        }
    }); 
});
})
0 голосов
/ 23 мая 2011

Я обнаружил, что этот круг ожидания на XMLHttpRequest зависит от реализации браузера.В IE7, Firefox4 он не отображал кружок ожидания или полосу, в то время как в chrome11 у Windows Safari был такой.

Я считаю, что стандарт должен быть принят, потому что это сильно влияет на пользовательский опыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...