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

时间:2013-10-18 17:15:51

标签: caching meteor

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

在Meteor中这样做的明智之举是什么?有包裹吗?

其次,如何在后台加载队列中指出我想要哪些资源是最高优先级?例如,我如何确保"启动页面"它的图像会立即出现吗?

1 个答案:

答案 0 :(得分:2)

根据设计,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文件并预加载它们。在Meteor应用中使用router package,并注意主页中的所有链接都指向Meteor应用中定义的路由。您还可以通过从CDN或Apache / Nginx服务器中分离出来并从Meteor图像,附加CSS,外部JavaScript(如库)直接需要的任何资源中加载任何资源来加快速度,并使用非Meteor预加载的资源托管主页。

最后看看meteor-external-file-loader。它专为在Meteor应用程序中即时加载外部JavaScript库而设计,例如仅在您实际显示地图的页面上加载Google地图。我不确定它是否可以用来加载你的应用程序的核心JavaScript,就像模板一样,但是如果你的应用程序非常庞大以至于无论如何你想要拆分它,那么可能你的代码中有部分可以分开进入像你自己的自定义JavaScript库这样的包,然后可以使用meteor-external-file-loader从Apache / Nginx服务器动态加载。