如何检查jQuery是否已经在缓存中?

kab*_*ros 13 jquery caching

无论如何检查客户端是否从CDN加载jQuery?我的意思是要有这样的代码:

if (jQuery.isLoadedFromCDN)
//DoNothing
else
//load from internal resource
Run Code Online (Sandbox Code Playgroud)

请注意,我不想检查jQuery是否已加载,但特别是如果它是从CDN加载的.

上下文是我有一个使用jQuery的内部局域网w​​eb应用程序,从局域网加载jQuery肯定更快,但如果它之前已经从CDN下载(可能就是这种情况)那么我只想用它,否则我想要从我们的内部资源而不是cdn获取它.带宽节省绝对不是很大,但我更想知道这是否在技术上是可行的.

Bar*_*den 0

据我所知,这实际上是不可能的。然而,有两件事可以帮助你:

  1. 使用Etags:识别网络服务器端的资源。这样,您的浏览器就会为您完成这项工作:识别资源是否已加载,无论其加载的域如何
  2. 如果您确实想知道 jQuery 是从哪个域加载的,您可以执行虚拟 AJAX 请求。您只能从加载库的同一域执行 AJAX 请求(当然,执行JSONP请求时除外)。因此,如果您的 jQuery 是从 LAN 资源加载的,您将获得对 LAN Web 服务器的 AJAX 请求的 trplies,这就排除了 CDN。

希望能帮助到你,

巴特