我最近在流星上使用过铁路由器,我惊讶地发现使用路由器从一个页面浏览到另一个页面实际上会重新加载整个页面内容。这是因为在从一个页面浏览到另一个页面时要更改的URL路径。它可能对搜索引擎可浏览的网站有用,但建立一个Web应用程序,这不是我正在寻找的。 p>
实际上我期待一些基于片段的东西,其中更改片段会将其放入会话中,以便我可以直接在我的模板中使用它。以下代码应该产生想要的效果(jQuery):
$(window).on('hashchange', function() {
Session.set('hash', window.location.hash);
});
但在使用我自己的解决方案之前,我想确保我没有重新发明轮子。是否有任何流星路由器或任何其他框架支持基于片段的页面呈现(与路径相对)?
答案 0 :(得分:1)
<a href="/somePage">ClickMe</a>
或通过路由器功能Router.go('/somePage');
执行此操作,铁路由器实际上不会重新加载整个页面
然而,在浏览器的字段中手动引入url会重新加载整个页面(使用片段不会是这种情况)
对于那些寻找动态将片段放入会话的人来说,这是我使用的完整代码:
function storeHashInSession()
{
Session.set('hash', window.location.hash);
}
Meteor.startup(function()
{
storeHashInSession();
});
$(window).on('hashchange', function()
{
storeHashInSession();
});
答案 1 :(得分:0)
我认为这取决于您使用的浏览器。我有一段时间没有看过铁路由器,但是version 0.6.0非IE浏览器使用HTML5历史推送状态,而IE&lt; 10每次都从服务器发出新的页面请求。
有关详细信息,请参阅此问题:https://github.com/EventedMind/iron-router/issues/14
对于我们的创业公司,我们仍在使用mini-pages
。
如果iron-router
尚未支持IE&lt; 10中的推送状态,希望它很快就会出现。