3

我有一个头文件被加载并插入到我所有页面的顶部。此头文件使用以下 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 页面一样从缓存中加载脚本,而不是每次加载页面时都获取它?

4

1 回答 1

-1

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

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

请注意已绝育的前端 (//),这是它自动检测 HTTP/HTTPS 的方式。

于 2013-03-03T04:37:30.397 回答