防止JQuery每次都为缓存的HTML请求检索脚本

时间:2013-03-02 20:04:51

标签: javascript jquery ajax

我有一个头文件,它被加载并插入到我所有页面的顶部。此头文件加载以下ajax调用:

$.ajax({
        url: '/header.html',
        cache: true,
        dataType: 'html',
        success: function ( data ) {
            $( 'body').prepend( data );
        }
});

HTML文件被缓存,因此当用户访问一个页面时,在导航到其他页面时,标题将在其他页面的顶部加载得更快。问题是该HTML文件中有一个<script>标记:

<script type="text/javascript" src="/header.js" defer="defer"></script>

此脚本未缓存。我检查了Firebug的网络活动选项卡,并在其末尾请求了一个唯一的编号:

GET http://localhost/header.js?_=1362254276028

我怎样才能让JQuery像HTML页面一样从缓存加载脚本,而不是每次加载页面时都得到它?

1 个答案:

答案 0 :(得分:-1)

默认情况下,所有JavaScript都会被缓存。另一个提示是使用Google托管的jQuery库,因为它会自动检测HTTP / HTTPS,如果用户访问了引用Google链接的其他网站,则无需重新加载。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

注意neutered front(//),这就是它自动检测HTTP / HTTPS的方式。