我的流星应用程序在桌面上按预期工作,但由于更改路线时不必要的总页面刷新,移动体验较慢。
我已经在谷歌开发工具上测试了我的应用程序,使用了"模拟触摸屏"选项,并在移动chrome的Galaxy S4上进行了测试。当我点击触发iron router路由到新路由的按钮或链接时,整个页面将刷新,而不是一个包含模板的yield(即页眉和页脚与标签一起重新加载。整个页面)。当"模拟触摸屏"选项未激活且按钮和链接被点击时,应该发生什么,以及在桌面上发生什么,都是{{>yield}}中快速切换模板的正常行为。页面的其余部分没有按预期刷新。我只知道,当"模拟触摸屏"选项处于活动状态时,首先会触发触摸启动事件,然后是导致整个页面刷新的单击事件。
关于是什么原因造成的以及如何解决这个问题,有什么想法吗?
一些示例代码如下:
//makes the button clicked make the page go back
'click .glyphicon-chevron-left' : function(e) {
e.preventDefault();
history.back();
};
// when clicked goes to a preference page
<a id='Preferences' href="{{pathFor 'pref'}}" data-toggle="collapse" data-target=".nav- collapse"> Preferences </a>
使用带有以下软件包的流星0.9.0.1版本:缺乏信心的标准应用程序包铁路由器快速旋转铁路由器进展单页登录accounts ui帐户密码动画css流星natestrauser:连接横幅米造:引导-3
编辑:错误是由与软件包无关的第三方javascript文件引起的。如果我能确定问题的具体原因,我会进一步更新。
我用修复了这个问题。
Template.back.events({
'click #back': function (evt) {
window.history.back();
evt.preventDefault();
},
'touchstart #back': function () {
window.history.back();
evt.preventDefault();
}
});
和
Template.layout.events({
'touchstart a': function (evt) {
console.log(evt);
evt.preventDefault();
Router.go($(evt.currentTarget).attr('href'));
return false
}
});
我也遇到了同样的问题。刚刚删除axw:ratchet
包