Javascript Ajax调用似乎缓存在IE11中,如何每次强制执行此调用?
我每次在Mozilla和Chrome中都会调用AJAX,但不是IE11。我很感激你的想法Javascript Ajax调用似乎缓存在IE11中,如何每次强制执行此调用?,javascript,jquery,ajax,internet-explorer,Javascript,Jquery,Ajax,Internet Explorer,我每次在Mozilla和Chrome中都会调用AJAX,但不是IE11。我很感激你的想法 function getOrders(customerId) { alert('Test1'); $.ajax({ type: "GET", url: '/Orders/GetOrders', data: ({ customerId: customerId}), dataType: 'html', success: window.updateTable }
function getOrders(customerId) {
alert('Test1');
$.ajax({
type: "GET",
url: '/Orders/GetOrders',
data: ({ customerId: customerId}),
dataType: 'html',
success: window.updateTable
});
alert('test 2');
}
如前所述,您可以向
ajax
调用提供cache:false
参数
更通用的方法是使用缓存破坏技术。一种常见且简单的方法是向URL添加额外的数据位。时间戳在这方面非常有效:
$.ajax({
type: "GET",
url: '/Orders/GetOrders',
data: ({ customerId: customerId, cacheBust: Date.now() }),
dataType: 'html',
success: window.updateTable
});
这将创建如下URL:/Orders/GetOrders?customerId=123&cacheBust=123579285
。好在每次调用的时间戳都不同,所以它本质上是一个新资源,不会被缓存
几乎在任何情况下都可以使用此技术来避免浏览器缓存。如前所述,您可以为ajax
调用提供cache:false
参数
更通用的方法是使用缓存破坏技术。一种常见且简单的方法是向URL添加额外的数据位。时间戳在这方面非常有效:
$.ajax({
type: "GET",
url: '/Orders/GetOrders',
data: ({ customerId: customerId, cacheBust: Date.now() }),
dataType: 'html',
success: window.updateTable
});
这将创建如下URL:/Orders/GetOrders?customerId=123&cacheBust=123579285
。好在每次调用的时间戳都不同,所以它本质上是一个新资源,不会被缓存
此技术可用于在几乎所有情况下避免浏览器缓存。使用$的cache:false
属性。ajax
:或只添加未使用的随机数据。还有几点建议,不要使用alert()
进行调试console.log()
是更好的实践和准确的方法。另外,由于all,您不需要在提供给数据的对象周围加括号。喜欢cache:false的想法。感谢您提供的有用的JS建议,也可以使用$的cache:false
属性。ajax
:或者只添加未使用的随机数据。还有一些其他建议,不要使用alert()
进行调试console.log()
是更好的实践和准确的方法。另外,由于all,您不需要在提供给数据的对象周围加括号。喜欢缓存:错误的想法。也谢谢你的有用建议