如何停止在HTML中重新加载jquery

时间:2012-10-09 11:15:03

标签: javascript jquery html

有没有办法停止每个HTML页面重新加载jQuery? 例如,我有两个HTML页面都包含以下内容:

  <body>
      <script src="jquery"></script>

在这两种情况下,都会向浏览器发送相同的jQuery。 IE浏览器。 Jquery-1.6.min.js(目前)

Fiddler似乎表明在两种情况下都会发送文件。这是Fiddler的展示:

#  Result  Protocol  Host            URL      Body    Caching  Content-Type

1  200     HTTP      localhost:4567  /        9,101            text/html;charset=utf-8
2  200     HTTP      localhost:4567  /jquery  90,518           text/html;charset=utf-8
3  200     HTTP      localhost:4567  /namadd  8,706            text/html;charset=utf-8
4  200     HTTP      localhost:4567  /jquery  90,518           text/html;charset=utf-8

目前我正在使用Ruby-Sinatra微框架来提供数据,但最终它可能是其他东西。

  • 上面的第1项显示了正在发送的HTML页面。
  • 第2项显示HTML使用<script src="jquery"></script>
  • 加载jQuery
  • 第3项显示正在加载的另一个HTML页面。
  • 第4项显示HTML使用<script src="jquery"></script>
  • 加载jQuery

3 个答案:

答案 0 :(得分:3)

一般来说,你在这里谈论的是缓存。使用动态页面(IE:ASP.NET,php等),您通常可以通过添加适当的HTTP标头以编程方式定义页面的可缓存性。

对于这样的静态文件,它的缓存将取决于Web服务器及其设置以确定。 HTML中没有简单的方法可以缓存它(你可能可以使用复杂的方法来实现),但你想要做的是找出如何配置服务器以将文件设置为可缓存(你真的想要将它缓存在客户端上,以便它不会再次请求它。

答案 1 :(得分:1)

在你的情况下,你可以在加载另一个jquery库之前检查

就像这样

if(window.$==undefined){ //Will return false if jquery is already loaded
   load your script 
}else{
  do not load the script 
}

答案 2 :(得分:0)

我能找到解决这个问题的唯一方法是:

  1. 浏览器中的新sessionStorage和localStorage功能。

  2. ajax.googleapis.com

  3. 我想要实现的是只下载一次jQuery以供多种表单使用。

    Google解决方案非常棒,因为除非浏览器缓存已清除或类似,否则您只需永久加载一次。这节省了大量带宽。也许localStorage实现了同样的目标

    sessionStorage和localStorage可能会达到类似的目的,但我还没有尝试过使用它们,但我可能只是为了消除对第三方的依赖。我的意思是,谷歌是一家企业,对吧。