我对AJAX和缓存一无所知。
在W3Schools的AJAX - Send a Request To a Server上,它说您应该在脚本的URL末尾添加"?t=" + Math.random()
以便运行以防止缓存。
在Wikipedia上,“缓存”的简单定义是:
但是,这岂不是更好吗?如果计算机已经存储了一些重复数据,则脚本将运行得更快。另外,教程页面上的第一个示例(没有添加URL)也可以正常工作。
有人可以告诉我使用"?t=" + Math.random()
的原因吗?
最佳答案
是的,出于性能考虑,最好有一个缓存系统,因为可以一次装入的元素将被检索而无需每次都向服务器发出HTTP请求,因此可以快速装入应用程序页面。
添加此"?t=" + Math.random()
就像每次重新加载脚本时都重命名脚本的URL。缓存系统会将其视为一个新元素,而不是已存储的旧元素,即使什么都没有真正改变。因此,这迫使从服务器重新加载该元素。
通常,我们可能希望对经常更新的元素(例如图像,脚本)执行此操作。例如,网站上的个人资料图片是用户可以更改的情况,如果旧图片文件在缓存中,那么如果我们不使用随机数的技巧,用户将不会立即看到新图片出现。用户可能会认为他的上传无效。他将不得不在浏览器中手动清空缓存,但这并不总是很直观的。
第二个原因可能是在开发过程中这样做很好,因为我们不必在考虑代码更改的情况下每分钟都清空缓存...
但是,请勿在您确定不会更改或很少更改的元素上使用此技巧。