【问题标题】:How to prevent meteor from rerendering a template?如何防止流星重新渲染模板?
【发布时间】:2013-11-16 22:43:52
【问题描述】:

我正在尝试解决 Chrome 中的 reported bug 问题,它会导致引用长时间运行的视频流的 标记消耗服务器连接,即使它们已从 DOM 中删除。

我的 Meteor 应用程序中有一个 标记,它指向它的 src URL 的反应变量。这存在于包含许多其他反应变量的模板中。

问题在于,每当其他任何变量发生变化时,Meteor 都会重新渲染整个模板,包括我的图像标签。即使图像标签被删除,由于上述错误,它仍然保持与服务器的连接。所以结果是在四次模板刷新后,我的服务器连接用完了,我的图像不再显示视频。

有什么方法可以阻止 Meteor 刷新页面的这一部分但仍保持其反应性?我尝试将图像放入其自己的模板中并包含较大模板中的模板,但即使是子模板也会重新渲染。我不想使用 {{#constant}} 因为模板中的内容应该是反应性的。我只想控制它何时重新渲染,而不是无关的事情发生变化时。

还有其他想法吗?提前致谢!

【问题讨论】:

    标签: javascript image google-chrome meteor


    【解决方案1】:

    您可以使用 {{#isolate}},因此代码只会围绕您使用反应性的块进行更改:

    {{#isolate}}{{yourhelper}}{{/#isolate}}
    

    {{#isolate}} 块中的所有内容都将被重新渲染,但其余部分将被视为单独的。您可以对其进行调整,使您的图像与给您带来麻烦的助手分开。

    您无需在即将推出的新 Meteor-UI 中执行此操作 :)

    【讨论】:

    • 啊哈!这为我指明了正确的方向。我不需要使用隔离,我只需要将正在更改的内容放在单独的子模板中,这样它们就不会导致整个父模板重新呈现。好像已经解决了,谢谢!
    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2013-09-26
    • 2020-07-25
    • 2017-01-04
    • 1970-01-01
    • 2013-07-24
    相关资源
    最近更新 更多