Internet Explorer не обновляется с PHP / jQuery - PullRequest
1 голос
/ 16 марта 2012

Я создал «фон» для страницы, состоящей из div с фоновыми изображениями.В результате получаются блоки случайных изображений, которые появляются, ждут, исчезают и перезагружаются с помощью jQuery и PHP.

Это работает в Chrome, Firefox, Safari, Opera (хотя и немного более громоздко), Safari / iPad, Телефон на Андроиде.Это «работает» в ie8 и ie9 с одним исключением: одни и те же изображения появляются каждый раз в обеих версиях IE (протестировано на IE8 / Win7, IE9 / Vista).

Я использовал PHP дляв то время как я знаю, что это хорошо.Я довольно новичок в jQuery, но, как я уже говорил, он работает во всех других браузерах (хотя это может быть сделано не самым эффективным способом).Вот jQuery, который я использую:

var auto_refresh = setInterval(function () {
    var $data = $('#backgrounder');
    $data.fadeOut(2000, function() { 
        $data.load('background.php', function() { 
            $data.delay(2000).fadeIn(2000); 
        }); 
    });

}, 10000); // refresh every 10000 milliseconds

PHP просто создает div из случайных имен файлов из папки.

Он выводит этот тип HTML:

<div class="outerbackgroundbox">
<div style="background-image: url(images/backgrounds/a5.jpg);" class="blocks"></div>
<div style="background-image: url(images/backgrounds/a2.jpg);" class="blocks"></div>
...
<div style="background-image: url(images/backgrounds/a6.jpg);" class="blocks"></div>
<div style="background-image: url(images/backgrounds/a7.jpg);" class="blocks"></div>
</div>

Любые мысли о том, почему это не обновляется в Internet Explorer (кроме очевидных мыслей "IE Sucks", т. Е.; -)

Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Это, вероятно, проблема с кешированием. Чтобы избежать дополнительных затрат, IE просто использует то же, что и раньше, с того же URL.

http://api.jquery.com/jQuery.ajaxSetup/

$.ajaxSetup({cache: false});

Это должно отключить кэширование для всех запросов AJAX, которые вы делаете с помощью jQuery.

1 голос
/ 16 марта 2012

Я не уверен, что это именно то исправление, которое вы ищете, но я решил многие проблемы с кэшированием IE, вызвав .hide () и .show () быстро, до вызова data.delay.Выполнение этого сразу после перезагрузки может сработать (хотя это может также вызвать некоторые странные мигания при перерисовке - в большинстве случаев это не было проблемой для меня, но может быть для вас.)

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