meteor js写的静态HTML?要嵌入<iframe> </iframe>

时间:2014-11-09 00:01:46

标签: javascript node.js iframe static meteor

免责声明 - 我对制作网络应用程序非常陌生,我在周末经历了一些流星js教程,非常酷。

我想要制作这个项目,包括将表格数据嵌入到网站中。我想用iFrame做到这一点。

我可以看到如何使用meteor,路由到模板来呈现我想要的html,但我关心的是性能。让整个应用程序加载只显示几行html似乎过多,它肯定不需要所有的JavaScript。

html可以是一个静态文件,只有在Web应用程序用户保存更改时才会更改,它不必每次都有人看到嵌入时动态加载。

所以我真正要问的是,如何使用meteor js编写静态html文件?

1 个答案:

答案 0 :(得分:1)

您需要的是服务器端呈现(SSR),因为您打算直接从您的流星服务器提供html。

流星不支持SSR。

虽然我自己并没有试图让SSR在meteor中工作,Arunoda has,但却有一些相当严重的限制。基本上你不能有那么多的反应。这可能是由于在服务器上使用光纤。但是你说你在iframe中不需要反应,所以这不应该阻止你。

您可以将Arunoda的解决方案与Iron Router's server routes结合使用。

启用SSR包:

meteor add meteorhacks:ssr

将您的模板放入私人目录:

<!-- private/embed.html -->
<template name="embed">
  <ul>
  {{#each posts}}
    <li>{{title}}</li>
  {{/each}}
  </ul>
</template>

在服务器上,使用以下命令编译:

SSR.compileTemplate('embed', Assets.getText('embed.html'));

宣布你的模板经理:

// server/embed.js
Template.posts.getPosts = function(category) {
  return Posts.find({category: category}, {limit: 20});
}

然后按如下方式添加服务器路由:

Router.route('/embed/:owner', function () {
  var html = SSR.render('embed', {owner: this.params.owner});
  this.response.end(html);
}, {where: 'server'});

现在您只需将iframe指向http://localhost:3000/embed/myusername

在这个阶段我不建议以这种方式使用meteor,而是创建一个简单的后端,直接连接到DDP或mongo并呈现你的iframe的html。