2

我的流星应用程序在桌面上按预期工作,但由于更改路线时不必要的总页面刷新,移动体验很慢。

我已经使用“模拟触摸屏”选项在谷歌开发工具和移动 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:不安全的标准应用程序包铁路由器旋转铁路由器进度单页登录帐户 ui 帐户密码动画 css 流星 natestrauser:连接横幅 mizzao:bootstrap- 3

编辑:错误是由非包相关的 3rd 方 javascript 文件引起的。如果我能确定问题的具体原因,将进一步更新。

4

2 回答 2

2

我解决了这个问题。

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
    }
});
于 2014-09-17T19:08:42.020 回答
0

我有同样的问题。刚刚删除的axw:ratchet

于 2014-09-17T18:26:16.523 回答