Способ отображения сообщения «загрузка» - PullRequest
2 голосов
/ 29 ноября 2008

Я использую jquery и метод getJSON, и мне интересно, есть ли способ отобразить сообщение о загрузке до того, как оно загрузит мой контент. я знаю, что при вызовах jquery ajax есть обратные вызовы перед отправкой, где вы можете получить что-то, но getJSON имеет только три варианта.

Есть идеи?

Ответы [ 4 ]

9 голосов
/ 29 ноября 2008

Добавьте это куда-нибудь на свою страницу:

<div id="loading" style="display:none">
    <img src="/images/ajax-loader.gif" alt="Loader" />&nbsp;Loading...
</div>
<script type="text/javascript">
    $().ready(function() {
        $("#loading").bind("ajaxSend", function() {
            $(this).show();
        }).bind("ajaxComplete", function() {
            $(this).hide();
        });
    });
</script>

Вы можете стилизовать загрузчик div, например, загрузчик, подобный Google Mail:

#loading
 {
   position:fixed; 
   _position:absolute;
   top: 0;
   left:47%; 
   padding:2px 5px;
   z-index: 5000;
   background-color:#CF4342;
   color:#fff;
 }
7 голосов
/ 29 ноября 2008

есть пользовательские .ajax события «до» и «успех», которые вы можете запускать.

Обычно, однако, вы бы просто сделали что-то вроде


  showLoadingAnimation(); 
  $.getJSON(  ..... function(){
      dontShowLoadingAnimation(); 
  }); 

или что-то подобное.

Ваш вопрос, однако, несколько смутен, и трудно понять, что именно вы хотите сделать, что вы уже не смогли бы сделать просто с помощью JavaScript.

5 голосов
/ 29 ноября 2008

Вы можете использовать ajaxSend и ajaxStop на объекте jQuery для присоединения соответствующих обработчиков событий, как в этого урока . Это вызовет индикатор выполнения независимо от типа запроса (все методы jQuery AJAX и JSON), а также скроет график загрузки при возникновении ошибки.

0 голосов
/ 30 ноября 2008

Kent

Что-то подобное будет работать, просто отобразите простой элемент div с отображаемым текстом Загрузка ..., а затем отобразите мои результаты JSON.

Ryan

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