2013-07-05 150 views
0

我有这样的JavaScript代码:浏览器缓存的问题在IE

$('#selectionoptions').change(function() { 
    var courseId = $(this).val(); 
    $.get('../php/lecturer_getcourse_info.php', 
     { course_id: $(this).val() }, 
     function(courseData) { 
      var description = courseData.description; 
      $("#coursecontent").html(description); 
      ... 

认为我还可以修改“说明”,并将其保存回数据库。现在,在Firefox每次刷新页面时,我都会看到正确的描述;但在IE上,我必须先清除缓存,然后才能看到正确的说明....

我该如何解决这个问题?

+1

您可能需要阅读[这篇文章中的第二个事实(HTTP ://blog.httpwatch.com/2009/08/07/ajax-caching-two-important-facts/) – Joseph

回答

1

原因是在IE中,你必须假设Ajax调用不缓存。

使用此:

$.ajaxSetup({ 
    // Disable caching of AJAX responses 
    cache: false 
}); 

或使用完全不同的Ajax调用,而不是$不用彷徨如:

$.ajax({ 
    url: "test.html", 
    success: function(data){ 
    alert('data returned!'); 
    }, 
    cache: false 
}); 
+0

我不想重新写我的网站,我应该在哪里放置.ajaxSetup,以便我所有的所有的网页都没有被缓存? – Kam

+0

将其放入所有页面上加载的文件中,并确保在发生任何Ajax调用之前加载该文件。这应该做到这一点。 – Daryl

+0

谢谢你的回答,我不知道这个问题一直困扰着我一段时间! –