在Javascript中如何检查用户是否具有文件的缓存版本?

可能重复:
如何检测XHR何时返回缓存资源?

我构建了一个自动加载器,如果尚未使用jquery在此页面上加载javascript文件,则只加载javascript文件:

$.getScript(); 

我首先检查function是否存在,如果不存在则加载它们。 但是,这无法解释浏览器缓存,我希望我能够弄清楚如何。

我想添加的一件事是查看用户是否已将文件保存在浏览器缓存中。 是否可以检查服务器上的文件是否已经缓存在用户浏览器上,以便我可以跳过对服务器的调用?

缓存透明地工作。 如果您请求文件并且该文件存在于用户的缓存中,则将使用缓存的文件,并且不会向服务器发出其他请求。 浏览器会处理这个问题,因此您不必为您所描述的情况担心。

.getScript默认情况下使用带时间戳的查询参数禁用它,因此您只需要禁用getScript使用的缓存旁路:

 $.ajaxSetup({ cache: true }); 

浏览器将根据文件是否已在缓存中确定是否从服务器检索。 jQuery将添加时间戳,以便每次都加载新版本。 可以通过设置cache:true来关闭它

至于检查您是否已经加载到页面中以便不在代码中再次加载它的方法,您可以执行各种操作。

  1. 在脚本加载时向元素或主体添加类,并在进行新调用之前检查类是否存在。
  2. 设置带有脚本的变量标志,并在进行新呼叫之前检查是否存在
  3. 在进行新呼叫之前,请检查脚本中是否存在函数