【问题标题】:Using appcache in Meteor app在 Meteor 应用中使用 appcache
【发布时间】:2016-01-21 09:06:44
【问题描述】:

我在 Meteor 应用中启用了appcache (http://docs.meteor.com/#/full/appcache)。

但是服务器控制台说我缓存资源的总大小是 10.2MB。

从文档中,我看到我必须排除一些文件,因为它们太大了

Meteor.AppCache.config({
  onlineOnly: [
    '/bigimage.jpg',
    '/largedata.json'
  ]
});

问题是我不知道哪些文件太大了。我尽可能地保持文件拆分,并且由于样式表和 javascript 文件被缩小,我认为它们不会占用太多资源。

我的应用程序中根本没有任何图像或其他特殊文件。它是纯js和html(甚至没有css)。

编辑

我尝试检查chrome://appcache-internals/,从中获得了以下详细信息

http://localhost:3000/
Manifest: http://localhost:3000/app.manifest
Size: 10.3 MB
Creation Time: Thu Oct 22 2015 08:51:07 GMT+0200 (Romance Daylight Time)
Last Access Time: Thu Oct 22 2015 10:16:37 GMT+0200 (Romance Daylight Time)
Last Update Time: Thu Oct 22 2015 10:16:36 GMT+0200 (Romance Daylight Time)
Remove Item View Details

当我点击View Details 时,我得到一长串正在缓存的文件。

这些 javascript 文件大于 1MB:

http://localhost:3000/packages/aldeed_autoform.js?019cba9c67d18d17c34ea48a455d8956ded05487 1.1 MB Explicit
http://localhost:3000/packages/aldeed_tabular.js?b5a33bda4b2c2ddbf08d97504162570faea3b826 1.9 MB Explicit
http://localhost:3000/packages/jquery.js?1015953f785c9b76503e2ecb391507dce965f357 1.2 MB Explicit

但它们都是外部库,所以我不知道如何处理它们。不应该把所有的js文件都缩小吗?

我有

standard-minifiers          # JS/CSS minifiers run for production mode

在我的packages;但是,我不确定它们是否在 localhost 上未缩小,但在上传到服务器时却缩小了?

【问题讨论】:

  • 我没有使用 Meteor 的 appCache 的经验,但是您是否尝试过在 Chrome 中访问您的网站并查看 chrome://appcache-internals/(只需将其作为 URL 放在新标签中)?它应该列出本地缓存的所有资源,这样它可以帮助您找出是否有任何问题。
  • 谢谢。我已经编辑了我的问题
  • 好吧,我想 1MB 库并非闻所未闻,我再次没有使用流星的经验,所以我不知道这是否应该是这样。不过,您可能想要检查重复条目,因为 ? 参数被 appcache 视为 URL 的一部分,它将缓存 my_url?1my_url?2 分开。您可以尝试在某些文件上使用 ctrl-f 手动查找重复项
  • @Jamgreen 我可以在其中添加: Meteor.AppCache.config({ onlineOnly: [ '/bigimage.jpg', '/largedata.json' ] }); ?

标签: javascript node.js caching meteor html5-appcache


【解决方案1】:

Meteor 在开发模式下发送所有那些客户端 javascript 和 css 文件(包括来自第三方包的文件),这最终会占用大量空间,因此来自 appcache 包的误导性警告。

但在生产模式下,更好的是部署构建,它们会被连接、缩小和压缩。

因此,为了真正了解您的客户端缓存大小,您应该发送meteor build 并检查实际的生产文件大小。

您会惊讶地发现它只是您在开发版本中获得的一小部分。

但请注意图片等静态资源!

【讨论】:

  • 您可以使用meteor run --production 代替meteor build 快速检查您的应用在生产中的外观
  • @Minderov meteor buildmeteor run --production 完全不同,后者缺少前者提供的 很多 优化。因此,至少可以说,结果可能具有误导性。
猜你喜欢
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 2014-10-06
  • 2015-10-24
  • 2018-02-11
  • 2017-04-29
  • 2013-06-13
  • 1970-01-01
相关资源
最近更新 更多