脚本缓存篮.js,我做错了什么
Script caching with Basket.js, am I doing something wrong?
我试图使用脚本缓存在localStorage中存储脚本。在这种情况下,我正在尝试由Addy Osmani和其他人创建的basketball .js。对于它工作的情况,性能是非常棒的,但问题是它不像我期望的那样工作,但是,说实话,也许它在工作,我不理解脚本缓存背后的基本原理。让我来描述一下我是如何使用它的:
首先,我设置标记:<script src="/framework/plugins/base/basket.js"></script>
然后,我将所有脚本包含在下面的代码块中:
<script>basket.require({url:'/framework/plugins/base/jquery-2.1.1.js',expire:168},{url:'/framework/plugins/base/jquery.ui-1.10.4.js',expire:168},{url:'/framework/plugins/forms/dropzone/dropzone.js',expire:168});</script>
当我加载我的测试页面时,一切都很好,除了当我刷新文档时。一旦它被缓存…闪光!它工作得很好,但我的问题是脚本缓存本身。我总是需要刷新文档来查看它的效果。
老实说,我认为脚本缓存将脚本存储在localStorage中并执行它们,因此您可以获得两全其美的效果。然而,它似乎不是那样的。
我做错了什么,或者它是任何脚本缓存模型像这样工作吗?总是在第二次运行?
你说你"总是必须刷新文档才能看到它的效果"是对的。根据我的理解,缓存只发生在第一次加载资源之后。简单地put basket.js会发现需要jquery,并将其缓存到本地存储中。然后使用它从客户端加载脚本,并通过这样做减少对服务器的资源请求,以便在后续加载时使用jquery。这加快了重复加载时的页面加载时间,因此刷新时的响应时间更快。
如果没有初始加载资源到客户端,basket.js无法将脚本缓存到本地存储。
关于浏览器缓存机制及其实现的基本解释可以在这里找到。
也就是说,如果你希望在初始加载页面时加快资源的加载时间,我建议使用内容分发网络(CDN)服务。
相关文章:
- 正在尝试为Docpad网站设置Lunr全文搜索插件.我做错了什么
- 重新加载重复数据失败,我做错了什么
- 我做错了什么
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- Javascript语法 - 我做错了什么
- 角度灯箱不起作用.我做错了什么
- 在这个猫鼬独特的保存前验证中,我做错了什么
- 简单的Youtube iframe API就在文档中,我做错了什么
- 我正在尝试实现一个AJAX调用.我做错了什么
- 我对这个动态查询做错了什么
- 我在jQuery事件处理和隐藏/显示图像元素方面做错了什么
- 闭包中的本地变量从外部更改.这是一个javascript错误,或者我做错了什么
- JS离线检测?我做错了什么
- Jquery自动完成不是't工作.我做错了什么
- 是ngRouter的角度错误还是我做错了什么
- jQuery Toggle——我做错了什么
- javascript原型,我做错了什么
- 超级初学者JavaScript..我做错了什么
- 我在这里做错了什么?否则,如果
- Javascript和HTML - 添加一个下拉菜单,我在这里做错了什么