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

Preventing JQuery from retrieving scripts everytime for a cached HTML request

本文关键字:HTML 请求 检索 脚本 缓存 JQuery 防止      更新时间:2023-09-26

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

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

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

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

这个脚本没有被缓存。我检查了Firebug的网络活动选项卡,请求脚本的末尾有一个唯一的数字:

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

我怎么能要求JQuery加载脚本从缓存就像HTML页面,而不是得到它每次页面加载?

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

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

注意前面(//),这是它自动检测HTTP/HTTPS的方式。