可能重复:
如何检测 XHR 何时返回缓存资源?
我构建了一个自动加载器,如果它尚未使用 jquery 加载到此页面上,则仅加载一个 javascript 文件:
$.getScript();
我首先检查函数是否存在,如果不存在,我会加载它们。但是,这无法解释浏览器缓存,我希望我能够弄清楚如何。
我想添加的一件事是查看用户是否已经将文件保存在浏览器缓存中。是否可以检查来自您服务器的文件是否已经缓存在用户浏览器上,以便我可以完全跳过对服务器的调用?
可能重复:
如何检测 XHR 何时返回缓存资源?
我构建了一个自动加载器,如果它尚未使用 jquery 加载到此页面上,则仅加载一个 javascript 文件:
$.getScript();
我首先检查函数是否存在,如果不存在,我会加载它们。但是,这无法解释浏览器缓存,我希望我能够弄清楚如何。
我想添加的一件事是查看用户是否已经将文件保存在浏览器缓存中。是否可以检查来自您服务器的文件是否已经缓存在用户浏览器上,以便我可以完全跳过对服务器的调用?
缓存透明地工作。如果您请求一个文件并且该文件存在于用户的缓存中,则将使用缓存的文件,并且不会向服务器发出额外的请求。浏览器会处理这个问题,因此您不必担心您所描述的情况。
.getScript
默认情况下使用带时间戳的查询参数禁用此功能,因此您只需禁用缓存绕过,它getScript
使用:
$.ajaxSetup({
cache: true
});
当请求发出时,浏览器将根据文件是否已经在缓存中来确定是否从服务器检索。jQuery 会添加一个时间戳,因此每次都会加载一个新版本。这可以通过设置关闭cache:true
至于检查您是否已经在页面中加载以免在代码中再次加载它的方法,您可以做很多事情。