Javascript onkeypress和onblur一起使输入写得太慢

时间:2019-01-15 13:30:16

标签: javascript vue.js vuejs2

我正在尝试建立打字指示器。一切正常。但是我发现在输入框中写太慢了。

我正在这样使用

<Input  type="textarea" :autosize="{minRows: 2, maxRows: 6}" placeholder="Type a message..." 
     v-model="u.myMsg" @on-enter="sendMsg($event,u)" @on-focus="sendSeenInfo(u)" 
     @on-keypress="run(true, u.con_id, u.user_id)" @on-blur="stopped(false,u.con_id, u.user_id)" 
></Input>

我正在使用vue.js。因此,这两个函数可以按预期工作,但会使键入本身变慢。

在运行功能中,我正在发送一些套接字事件。

任何想法都可以使它变得更好吗? 谢谢

编辑 运行方法

 run(type,con_id, uid){

        const obj = {
            con_id: con_id,
            isTyping: true
        }
        this.sendTypingNoti(1, obj, uid)
     },

sendTypingNoti方法

sendTypingNoti(type, value, uid){
        const ws = adonis.Ws()
        ws.connect()
        const chat = ws.subscribe(`noti:${uid}`)
        chat.on('ready', () => {
           const data = {
              type: type,
              input: value
           }
           chat.emit('message', data)
        })
    },

停止方法也一样。

1 个答案:

答案 0 :(得分:1)

如何使用vue watchers来为“打字”动画,而不是使用on-keypress

Here's一个vue watchers的示例,它在您按下键时具有“键入”信息。