2013-12-10 4 views
1

Я получаю данные с сервера. Данные содержат много изображений и некоторые другие элементы html. при замене содержимого div ответом сервера он всегда мерцает в div.мигает и мерцает при обновлении содержимого div из ajax

$('#div').html(serverResponse); 

Я также следовал этот метод: How to avoid blinking when updating page from ajax, но все же он мигает

Как я могу предотвратить мигание.

+0

Что именно вы имеете в виду, когда говорите, что мигает? Я пытаюсь выяснить, является ли проблема одной из загружаемых изображений ПОСЛЕ того, как вы помещаете их в HTML, или если это что-то еще? У ваших изображений есть высота и ширина, указанные в теге изображения, чтобы их размер был известен до загрузки изображений? – jfriend00

+0

означает, что он показывает, как перезагрузка раздела div изображениями и содержимым. – SBK

+0

Ответ сервера такой: сервер отправляет html, содержащий один главный div и несколько небольших div. Маленький div содержит изображение. Теперь после получения ответа я заменяю $ ('# div'). Html (serverResponse). Но это показывает, что изображения - перегрузка, так как требуется время, мигает и мерцает. – SBK

ответ

1

Вы можете скрыть '#div' и дождаться загрузки всех images, а затем показать '#div'.

$.ajax({ 
    url: '', 
    success: function (serverResponse) { 
     $('#div').html(serverResponse).hide(); 

     var $imgs = $('#div img'), //all images inside '#div' 
      len = $imgs.length, 
      imgs_loaded = 0; 

     $imgs.load(function(){ 
      imgs_loaded++; 
      if(imgs_loaded == len){ 
       $('#div').show(); 
      } 
     }); 
    } 
}); 
+0

Я вижу в вашем комментарии, что у вас есть «один главный div», может быть, лучше спрятать-показать, что div вместо этого. '$ ('# div'). html (serverResponse) .find ('один главный div'). hide();' –

+0

Большое вам спасибо. Ваше решение отлично работает. Еще раз спасибо. Я создаю сейчас два div. Поместите ответ сервера в скрытый div в соответствии с вашим решением, и когда он будет полностью загружен, я спрячу один div и покажу этот скрытый div. – SBK

+0

Отличный ответ ... + 1 – Hackerman

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