当前位置: 首页 > 面试题库 >

防止浏览器缓存AJAX调用结果

钱欣悦
2023-03-14
问题内容

好像我使用加载动态内容$.get(),结果缓存在浏览器中。

在QueryString中添加一些随机字符串似乎可以解决此问题(我使用new Date().toString()),但这听起来像是一种hack。

还有其他方法可以做到这一点吗?或者,如果唯一字符串是实现此目标的唯一方法,则除之外还有其他建议new Date()吗?


问题答案:

我使用new Date().getTime(),这将避免冲突,除非您在同一毫秒内发生多个请求:

$.get('/getdata?_=' + new Date().getTime(), function(data) {
    console.log(data); 
});

编辑: 这个答案已经好几年了。它仍然有效(因此我没有删除它),但是 现在有更好/更干净的方法可以实现此目的
。我的首选方法是这种方法,但是如果您想在页面生命周期内为 每个请求禁用缓存,此答案也很有用。



 类似资料:
  • 问题内容: 如何防止浏览器缓存Ajax结果?我有事件触发的Ajax脚本,仅在清除浏览器数据后才显示结果。 在IE6和Firefox 3.0.10中测试 问题答案: 将随机查询字符串添加到您要发送的URL。 例如,如果将Ajax请求发送到“ http://www.xyz.com/a ”,则在末尾添加一个随机字符串:“ http://www.xyz.com/a?q=39058459ieutm39 ”

  • 问题内容: 所以我正在做这个小项目,但是在捕捉方面有些麻烦。不能正常工作的一件事是,浏览器一直在缓存包含保存数据的json文件,当我在其他地方更新json时,浏览器会返回到已缓存的json文件的旧版本并读取该旧版本。不幸的是我不想要那个。我根本不希望浏览器完全缓存文件,以便每次加载页面时,它将向服务器请求json文件并根据该文件而不是已缓存的任何文件进行操作。但是,我希望能够缓存页面上的所有其他内

  • 问题内容: 我有一个运行在云服务器中的php站点。每当我添加新文件css,js或图像时,浏览器就会加载存储在缓存中的相同的旧js,css和图像文件。 我的网站具有doctype和meta标签,如下所示 由于上述doctype和元代码,我加载了浏览器中缓存的相同文件,而不是新文件 问题答案: 尝试这个

  • 问题内容: 这就是我们防止浏览器缓存JS和CSS文件的方式。这似乎有点hacky ..有更好的方法吗? 更新:我们要防止缓存的原因是为了确保在执行新发行版时加载较新版本的文件。 问题答案: 您希望缓存CSS和JS。当它们回来时,它加快了网页的加载。添加时间戳后,您的用户将不得不一次又一次下载它。 如果要确保它们始终具有新版本,则要使构建系统在文件末尾添加一个构建号而不是时间戳。 如果您只是在开发中

  • 我有从我的网页生成的AJAX POST请求,可能有多个POST请求具有相同的POST数据。但是响应可能会有所不同,我希望确保我没有得到这些请求的缓存响应。我需要每个请求点击网页。 我假设对POST请求的响应不会被缓存,这对吗?

  • 问题内容: 我需要停止浏览器存储用户名和密码值,因为我正在处理包含更多安全数据的Web应用程序。客户要求我这样做。 我尝试了HTML表单和密码字段中的属性。但它无法在最新的浏览器(例如Chrome 55,Firefox 38+,IE 11等)中运行。 最好的解决方案是什么? 问题答案: 感谢您给我回复。我点击了以下链接 禁用浏览器的“保存密码”功能 我通过仅在输入中添加&属性来解决此问题,如下所示