2013-03-14 3 views
-2

Я искал часы, чтобы найти лучшее решение для проблемы jquery .load, которая влияет на ie7 и 8, у меня есть следующий блок кода, который загружает мой контент с внешней страницы jsp без каких-либо проблем на всех браузерах, кроме вечно мудак IE7 и 8jQuery load() проблема с IE7 и 8

$(document).ready(function(){ 
    $.ajaxSetup({ cache: false }); 
    setInterval(function() { 
     $('#myDiv').load('test.jsp').fadeIn("slow"); 
    }, 10000); 
}); 

Я нашел много обходной путь, как установка новой даты, как:

$('#myDiv').load('test.jsp',{noncache: new Date().getTime()},function(){..}).fadeIn("slow"); 

Но не работает для меня и до сих пор содержание не загружается на IE7 и 8.

+2

Существуют ли какие-либо ошибки или предупреждения, показывающие в консоли разработчика? – Nope

+0

нет, нет ошибки на consol – ComeRun

ответ

0

Прежде всего, если вы хотите, чтобы содержимое FadeIn, оно должно быть сначала скрыто. Он не может fadeIn, если содержащий div уже виден.

Во-вторых, есть версии IE, которые немного усердны с кешированием, и вы можете победить кеширование с уникальным аргументом в URL-адресе (например, вы пытались).

В-третьих, .load() не является анимацией, поэтому он не использует очередь анимации, поэтому, если вы хотите что-то сделать после завершения загрузки, вам нужно сделать это в функции завершения. У вас есть кусочки этих двух последних, но они не собрали все вместе.

Вы могли бы объединить все три из них с чем-то вроде этого:

$(document).ready(function(){ 
    var myDiv = $('#myDiv'); 
    setInterval(function() { 
     myDiv.fadeOut('slow', function() { 
      var now = new Date().getTime(); 
      myDiv.load('test.jsp?unique=' + now, function() { 
       myDiv.fadeIn('slow'); 
      }); 
     }); 
    }, 10000); 
}); 
+0

, когда я устанавливаю новую дату, ничего не загружается, даже в браузерах, на которых страницы были загружены до этого раньше! – ComeRun

+0

@ComeRun - тогда, возможно, вам нужно проверить свой сервер и посмотреть, что он вернет, когда в URL есть параметр запроса. Возможно, сервер отклоняет любой URL с параметром запроса (что было бы необычной практикой). Попробуйте просто поместить 'http: //yourdomain.com/test.jsp? Unique = 3333' в браузер и посмотреть, что отображается. Это что-то возвращает? Вероятно, вы также можете устранить эту проблему на сервере, если сервер вернет правильные поля заголовка, которые указывают браузеру не кэшировать эту страницу. – jfriend00