javascript - 从 javascript 加载和缓存脚本

标签 javascript jquery ajax caching

在我的项目中,我需要从 javascript 加载一个非常大的 .js 文件并缓存它。

我想从登录页面加载脚本文件,然后在所有其他页面中将脚本放入普通标签中,如下所示 <script src="assets/js/app.js"></script>

事实是,我尝试了 3 种不同的方法,但在每种方法中,文件都没有缓存,如果我更改页面,从登录到另一个,浏览器会再次下载它。

在第一种方法中,我使用 JavaScript 创建了一个元素,然后将此元素添加到我的页面中:

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
// Fire the loading
head.appendChild(script);

在第二个中,我使用了 jQuery 的 getScript :

$.getScript('assets/js/app.js',function(){
    alert('OK');
});

第三次我尝试使用 ajax 调用:

$.ajax({
    type: "GET",
    url: "assets/js/app.js",
    success: function(){},
    dataType: "script",
    cache: true
});

但是这些方法似乎都没有缓存脚本。 有没有办法获得它?

更新

我解决了这个问题。第一种方法奏效了。我忘记了我在 chrome 的调试设置中选中了“禁用缓存”。 (我尝试过 IE11、Firefox、Edge 和 Chrome)

最佳答案

您没有分享太多有关您的项目的信息。
我找到了一个页面,他们解释了如何通过压缩和缓存 js 文件来加速 js 加载,看一下,你可能会发现它很有用

https://betterexplained.com/articles/speed-up-your-javascript-load-time/

关于javascript - 从 javascript 加载和缓存脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39210628/

相关文章:

Javascript 窘境 : Creating a highlighter pen tool. .. 差不多了

jquery - AJAX Post 无法使用 Django 成功捕获

javascript - 如何从异步调用返回响应?

javascript - 维护 Bootstrap 在页面之间激活的导航选项卡

javascript - jQuery(...).autocomplete 不是 fire jquery-1.10.2.js 的函数

javascript - 使用循环使用值填充变量,然后检索该变量的特定 "moment"

jquery - 问题 - 在 jQuery 验证插件中输入有效数据和错误数据时,成功类不会消失

javascript - 以发送它们的相同顺序显示 AJAX 响应,*不*使用排队或同步请求?

javascript - 在 polymer 层次结构中使用 "Maximum stack size exceeded"时为 "this.super"

javascript - 设置滚动条到特定的div