2012-06-15 1 views
0

Я сделал запрос Ajax с помощью следующего сценария ...Мой сайт останавливается, пока не загрузится весь контент?

$.ajax({ 
type: 'POST', 
url: 'load.php', 
data: 'page='+url, 
dataType: "html", 
beforeSend:function(){ 

$('.left').html('<div class="ajax-load"><center><img src="http://www.cadysalley.com/img/loader.gif" style="margin-top: 33px;" alt="Loading..." /></center></div>'); 
$('#ajax-load').show(); 
}, 

success:function(msg){ 
$('.left').empty(); 
// successful request; do something with the data 
if(parseInt(msg)!=0) 
     { 

      $('html, body').animate({ scrollTop: 0 }, 0); 
      $('.left').html(msg); 
      $('#ajax-load').hide(); 
     } 
    }, 
    error:function(){ 

$('.left').empty(); 
$('#ajax-load').hide(); 
} 
}); 

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

ответ

0

Вы устанавливаете новое содержимое в div, где вы разместили div ajax-load.

$('.left').html('<div class="ajax-load"><center><img src="http://www.cadysalley.com/img/loader.gif" style="margin-top: 33px;" alt="Loading..." /></center></div>'); 

$('.left').html(msg); 
$('#ajax-load').hide(); 

Вам необходимо разместить ajax-loader в сторону контейнера $ ('. Left').

отредактировал

ok do this. 
setTimeout(function() { 
    $('.left').empty(); 
// successful request; do something with the data 
if(parseInt(msg)!=0) 
    { 

     $('html, body').animate({ scrollTop: 0 }, 0); 
     $('.left').html(msg); 
     $('#ajax-load').hide(); 
    } 
}, 100); 

Это будет делать трюк.

+0

Я сделал это также, я помещен изображение загрузчика снаружи тоже, bt также одна и та же проблема, пауза загрузки изображений и целая страница останавливаются в течение нескольких секунд, а затем загружаются только – mesushanta

+0

см. мой отредактированный ответ –

+0

Вы получили его? Поместите мой отредактированный код в функцию успеха. это будет делать трюк –

0

Попробуйте сделать это .. Чтобы загрузить ваш сайт отлично .. Добавьте еще один div перед вашим ('.left') div. Скройте ('.left'), пока данные не загрузятся. Затем покажите свой ajax loader..when полные данные осуществляется с помощью AJAX вы скрыть свой Аякса и показать свою («.left») ..

как this..Add класс CSS

.hideIT{ 
visibility:hidden;  
} 

beforeSend:function(){ 

$('#newDiv').html('<div class="ajax-load"><center><img src="http://www.cadysalley.com/img/loader.gif" style="margin-top: 33px;" alt="Loading..." /></center></div>'); 
$('.left').addClass('hideIT'); 
$('#ajax-load').show(); 
}, 

success:function(msg){ 
$('.left').empty(); 
// successful request; do something with the data 
if(parseInt(msg)!=0) 
     { 

      $('html, body').animate({ scrollTop: 0 }, 0); 
      $('.left').html(msg); 
      $('#ajax-load').hide(); 
      $('.left').removeClass('hideIT'); 

     } 
    }, 
+0

Проблема не скрывает и не показывает, всякий раз, когда я нажимаю ссылку меню, изображение загрузчика показывает, после чего изображение загрузчика останавливается и вся пауза веб-сайта, ничто не доступно для клика, все листы приостановлены, весь веб-сайт останавливается или останавливается в течение нескольких секунд, пока страница содержимого не загрузится в .left – mesushanta

Смежные вопросы