Internet explorer IE中的jQuery缓存
我们这里有一个使用Wufoo表单和Wufoo jQuery API的站点 我们从API中提取数据,对其进行排序,然后将其显示在页面上。当我们提交的表单的编号高于当前前10名时,它应该在右侧实时更新,因为表单会重定向回自身。它可以做到这一点,但不是在IE中。相反,在提交表单和显示新数据之间似乎存在不必要的延迟。关闭浏览器并重新打开页面似乎是可行的,但这没有帮助 下面是我们正在使用的jQuery:Internet explorer IE中的jQuery缓存,internet-explorer,jquery,jquery-templates,wufoo,Internet Explorer,Jquery,Jquery Templates,Wufoo,我们这里有一个使用Wufoo表单和Wufoo jQuery API的站点 我们从API中提取数据,对其进行排序,然后将其显示在页面上。当我们提交的表单的编号高于当前前10名时,它应该在右侧实时更新,因为表单会重定向回自身。它可以做到这一点,但不是在IE中。相反,在提交表单和显示新数据之间似乎存在不必要的延迟。关闭浏览器并重新打开页面似乎是可行的,但这没有帮助 下面是我们正在使用的jQuery: <script> $.wufooAPI.getEntries({
<script>
$.wufooAPI.getEntries({
"callback" : processEntries,
"formHash" : "x7x1x7",
"sortID" : "Field3",
"sortDirection" : "DESC",
});
function processEntries(data) {
$.each(data.Entries.slice(0, 10), function(entriesIndex, entriesObject) {
// Make sure this entry has all the required bits
if (entriesObject.Field1 && entriesObject.Field3) {
$("#attendeeTemplate").tmpl(entriesObject).appendTo("#people ul");
}
});
};
</script>
$.wufooAPI.getEntries({
“回调”:processEntries,
“formHash”:“x7x1x7”,
“sortID”:“字段3”,
“sortDirection”:“DESC”,
});
函数processEntries(数据){
$.each(data.Entries.slice(0,10),函数(entriesIndex,entriesObject){
//确保此条目包含所有必需的位
if(entriesObject.Field1和&entriesObject.Field3){
$(“#AttendeTemplate”).tmpl(EntrieObject).appendTo(“#people ul”);
}
});
};
以下是模板代码:
<script id="attendeeTemplate" type="text/x-jquery-tmpl">
<li>
<h4>${Field1}</h4>
${Field3} minutes
</li>
</script>
${Field1}
${Field3}分钟
它在除IE8和IE9之外的所有浏览器中都能完美工作,因为它看起来像是在缓存数据,而不是从服务器提取请求
有什么方法可以停止IE中jQuery的缓存吗?一个简单的方法是欺骗并用时间戳标记您的请求url(但这有点笨拙)。 您可以关闭:
MSDN在IE中有一个关于缓存避免的页面。您是否尝试过查看jquery数据中是否存储了任何内容,当您说它看起来像是缓存时,这是否意味着您看到(在IE开发工具中)一个请求发出,响应状态为200(来自缓存)或304未修改?服务器是否发送Expires或max age标头?客户端是否正在发送max stale?浏览器和web服务器之间是否有缓存或代理?您是如何处理缓存问题的?
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});