2010-10-04 2 views
2

1) Я должен динамически менять изображения в соответствии со значениями за каждые x секунд.Обновление частичной страницы для секунд X с Jquery и Ajax?

Я использую следующую функцию:

setInterval(function() { 
    $("#content").load(location.href+" #content>*",""); 
}, 5000); 

Он отлично работает для обновления значения, но изображения не получают обновленную в свою позицию.

2) С 1-го вопроса я хочу знать, будут ли файлы jquery и css, включенные в тег head, загружаться каждые x секунд или нет. если не как загрузить?

Пожалуйста, дайте мне предложение.

ответ

0

Если вы возвращаете всю HTML-страницу и возвращаете ее в тело другой страницы, это плохая идея.

Подумайте об этом, ваша HTML структура будет что-то вроде

<doc type> 
<html> 
    <head> 
    </head> 
    <body> 
    <div> 
     <doc type> 
     <html> 
     <head> 
     </head> 
     <body> 
      <div> 

      </div> 
     </body> 
     </html> 
    </div> 
    </body> 
</html> 

В идеале вы должны быть перенастройки только содержание, которое будет отображаться, а не все.

Если вы просто обновляете изображения, обычно нет необходимости делать XHR-вызов. Вы можете просто установить изображение src и заставить браузер обновлять этот контент таким образом.

0

Нужно ли это делать с Ajax? Сколько изображений вы собираетесь пройти? Если это всего лишь несколько, просто сохраните все файлы src на странице и периодически переключайте атрибут src изображения. Это не требует перезагрузки страницы. Вы также можете предварительно загрузить все изображения, чтобы при изменении изображения на другое изображение не было мерцания. Например:

$(function() { 
    var images = ['1.png', '2.png', '3.png']; 
    $.each(images, function (index, src) { 
     $("<img />").attr('src', src); //preload 
    }); 
    var keep = 1; 
    setInterval(function() { 
     $("#main_img").attr('src', images[keep]); 
     keep++; 
     if (keep >= images.length) { keep = 0; } 
    }, 5000); 
}); 

Теперь, если вы не хотите, чтобы жестко закодировать URL изображений в JS, вы можете загрузить их сначала с одним запросом Ajax.

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

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