有没有办法停止每个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微框架来提供数据,但最终它可能是其他东西。
<script src="jquery"></script>
。<script src="jquery"></script>
答案 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)
我能找到解决这个问题的唯一方法是:
浏览器中的新sessionStorage和localStorage功能。
ajax.googleapis.com
我想要实现的是只下载一次jQuery以供多种表单使用。
Google解决方案非常棒,因为除非浏览器缓存已清除或类似,否则您只需永久加载一次。这节省了大量带宽。也许localStorage实现了同样的目标
sessionStorage和localStorage可能会达到类似的目的,但我还没有尝试过使用它们,但我可能只是为了消除对第三方的依赖。我的意思是,谷歌是一家企业,对吧。