默山 2021-07-03 16:34 采纳率: 0%
浏览 52
已采纳

socket.emit之后不想刷新页面

html中有id是btn的按钮,然后绑定了事件:

        document.querySelector("#btn").onclick = () => {
            const msg = document.querySelector('#msg').value;
            const post_time = new Date();
            socket.emit('client_send', {
                'name': '{{current_user.name}}',
                'avatar': '{{current_user.get_gravatar_url()}}',
                'msg': msg,
                'time': post_time.toLocaleDateString()
            });
            // alert("send")
        };

然后服务器收到消息,广播,接收服务器消息

@chat.route('/chatroom', methods=['POST', 'GET'])
def chatroom():
    return render_template('/chatroom.html')

@socketio.on("client_send", namespace='/msg')
def client_send(data):
    if data['msg'] != '':
        emit('server_response',
             {'name': data['name'],
              'avatar': data['avatar'],
              'msg': data['msg'],
              'time': data['time'],
              },
             broadcast=True
             )
    log.debug(data)

message_box是显示消息的div

        socket.on('server_response', function (res) {
            // alert(res.msg)
            var htmlData = '<div class="msg_item fn-clear">'
                + '   <div class="uface"><img src="' + res.avatar + '" width="40" height="40"  alt=""/></div>'
                + '   <div class="item_right">'
                + '     <div class="msg own">' + res.msg + '</div>'
                + '     <div class="name_time">' + res.name + ' · ' + res.time + '</div>'
                + '   </div>'
                + '</div>';
            $("#message_box").append(htmlData);
            $('#message_box').scrollTop($("#message_box")[0].scrollHeight + 20);
        });

但是每次emit之后页面都会自己刷新,一刷新,刚刚message_box里面append的内容就没了
怎么阻止它刷新呢?好像没查到什么相关资料

  • 写回答

1条回答 默认 最新

  • 默山 2021-07-04 14:53
    关注

    我懂了,不用回答了,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算