caching - Meteor:后台加载所有页面资源

标签 caching meteor

当有人导航到我的 Meteor 应用程序时,我希望首先加载、渲染和显示主页。然后,一旦完成此操作(用户可以开始单击),我的应用程序所有页面的所有其他资源和数据库都会在后台加载(缓存)到 LocalStorage(尽可能多),以便所有我的应用程序的页面、图像等在导航到时将立即出现。

在 Meteor 中执行此操作的简单约定是什么?有包吗?

其次,如何指示哪些资源在后台加载队列中具有最高优先级?例如,如何确保“启动页面”及其图像立即显示?

最佳答案

Meteor 应用程序在设计上是单页网站。如果您在已部署的 Meteor 应用程序上查看源代码,例如 http://docs.meteor.com<head>总是看起来像这样:

<link rel="stylesheet" href="/5a6084946b1bc47e30e45c05bdecb13536a2dc64.css">
<script type="text/javascript">
__meteor_runtime_config__ = {"meteorRelease":"galaxy-follower-5","ROOT_URL":
"http://docs.meteor.com","ROOT_URL_PATH_PREFIX":"","serverId":
"964b34dc-ffbb-b860-a313-9eedca254d83","DDP_DEFAULT_CONNECTION_URL":
"ddp+sockjs://ddp--****-docs.meteor.com/sockjs"};
</script>
<script type="text/javascript" src="/3353c2b059d42f3fe42e0d5eba87882b955d7cbe.js">
</script>

该 .css 文件是应用程序 CSS 的全部,并连接到一个文件中;该 .js 文件是应用程序的所有 JavaScript,包括所有模板,并连接到一个文件中。这就是 Meteor 的设计方式,如果不深入研究 Meteor 的源代码并重写一些主要部分,您就无法更改它。

我给你的唯一建议是让你的主页由其他东西提供服务,比如 Apache 或 Nginx 服务器,它确实只提供你所追求的最低限度的服务;并获取上述 .css 和 .js 文件并预加载它们。使用router package在您的 Meteor 应用程序中,并注意主页中的所有链接都指向 Meteor 应用程序中定义的路由。您还可以通过从 CDN 或 Apache/Nginx 服务器分离并加载 Meteor 不直接需要的任何资源(图像、附加 CSS、外部 JavaScript 等库)并由非 Meteor 预加载这些资源来加快速度。托管主页。

最后看看meteor-external-file-loader 。它设计用于在 Meteor 应用程序中动态加载外部 JavaScript 库,例如仅在实际显示 map 的页面上加载 Google map 。我不确定它是否可以用于加载作为应用程序核心的 JavaScript(如模板),但如果您的应用程序太大,以至于您正在考虑将其拆分,那么您可能可以将某些部分的代码分开放入您自己的自定义 JavaScript 库之类的包中,然后可以使用meteor-external-file-loader 从您的 Apache/Nginx 服务器动态加载这些包。

关于caching - Meteor:后台加载所有页面资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455419/

相关文章:

javascript - 为 meteor 中的自定义路由设置重置密码 token

javascript - 在 Meteor 中附加 base64 PDF 作为电子邮件附件

php - 后退按钮的 session 问题

caching - 将查询中的缓存设置为false后,Elasticsearch是否将删除现有的过滤器缓存

.htaccess - 用于利用浏览器缓存的 htaccess 不起作用

android - 在 Meteor mobile (android - cordova) 上使用 Braintree

客户端或服务器上的 ASP.NET 缓存

memory - 缓存行如何工作?

javascript - Meteor 让 Prerender.io 正常工作

javascript - Meteor Accounts.ui.config 不适用于 Google