键盘滞后的Meteor更新



所以我在按键后立即更新mongo模型,但它落后了(我认为(,因为值附加到了该模型上。在按键和刷新输入时更新模型的最佳方式是什么?我应该只在onRendered上填充输入一次吗(即值实际上没有附加到数据库对象(?

<input type="text" id="name" value="{{getName}}" required autofocus>

Template.campaignEditDetails.events
    "keyup input": (e, t)->
        val = e.currentTarget.value
        field = e.currentTarget.id
        Meteor.call "upsertCampaignField", t.data.campaignId, field, val, t.data.appId

是因为我是通过metro.call而不是在客户端上进行更新的吗(这是必需的,因为这是一个追加销售(?

我假设您的getName助手正在从数据库中读取该字段?如果是这样的话,与其说是对DB的节省滞后,不如说是读取oplog&将字段更新为数据库中的字段。

相反,我会得到一个值=一个非反应的默认值。return coll.findOne({foo: bar}, {reactive:false}).txt您在重新加载时仍然会得到保存的文本,但您将从DB中为键入的每个字符加载。

我也会考虑使用input事件,或者至少首先比较值&如果不同,请更新它。每当用户点击向上箭头时,触摸数据库是没有意义的。

最新更新