首页 > 其他分享 >vue.js客服系统实时聊天项目开发(十二)自动欢迎信息的延迟展示效果

vue.js客服系统实时聊天项目开发(十二)自动欢迎信息的延迟展示效果

时间:2023-01-30 17:44:47浏览次数:53  
标签:vue js delay second let greetings row 延迟

访客进行聊天窗口以后,会出现几条自动欢迎的信息,这是怎么实现的呢?

其实纯粹是前端实现的效果,并不是后端延迟推送。前端一次性取回几条数据以后,延迟逐条展示出来的

 

 

这里就实现了一个函数,参数是一个对象数组,对象中元素有一个key是delay延迟的秒数,还有昵称头像等信息,可以传递一个回调函数,在回调函数中根据这个delay把消息延迟展示到界面上

//延迟展示
function displayGreetings(greetings,callback) {
    if(!greetings||greetings.length==0){
        return;
    }
    let delay=0;
    for (let i = 0; i < greetings.length; i++) {
        if(!greetings[i].delay_second){
            delay+=3;
        }else{
            delay+=greetings[i].delay_second;
        }
        greetings[i].delay_second=delay;
    }
    for (let i = 0; i < greetings.length; i++) {
        let greeting = greetings[i];
        setTimeout(function() {
          // 在这里执行你想展示的操作,例如:
          callback(greeting);
        }, greeting.delay_second*1000);
    }
}

使用

                    let welcome=result.welcome;
                    tools.displayGreetings(welcome,function(row){
                        let message={
                            isme:false,
                            name:row.name,
                            avator:row.avator,
                            content:row.content,
                            time:tools.getNowDate()
                        }
                        _this.msgList.push(message);
                    });

 

标签:vue,js,delay,second,let,greetings,row,延迟
From: https://www.cnblogs.com/taoshihan/p/17076804.html

相关文章

  • vue中使用Echarts map图实现下钻至县级并展示当前地区的数据饼图
    先看效果图:第一层:    第二层: 第三层: Demo地址: https://github.com/blacksige/map-chart ......
  • JS几种常见循环
    常见循环,主要包括有for,for…in,for…of,forEach普通for  switch 遍历数组varnums=[11,12];for(vari=0;i<nums.length;i++){console.info(nums[i]);}/......
  • vue3+vite项目中使用qiankun的方式
    需要安装的依赖: "vite-plugin-qiankun":"1.0.10","vue-tsc":"^0.40.7""vite":"3.0.9","@vitejs/plugin-vue":"^1.6.0","vue":"^3.2.37","vue-router":......
  • 35 Three.js的融合材质
    简介在上一节,使用three.js的60版本,我们成功的实现了THREE.MeshDepthMaterial的案例。但是,我们没有办法修改它的材质的颜色。而一切都是由材质的默认属性决定的,但是Three.js......
  • Vue2 常见问题汇总及解决方案
    参考:https://mp.weixin.qq.com/s/6Wapb1bZLQaYv0zlip6ygg1.安装超时(installtimeout)方案:cnpm:国内对npm的镜像版本/*cnpmwebsite:https://npm.taobao.org/......
  • vue 使用 echarts
    配置:1.npm安装echarts(注意安装5.0之下的版本,安装5.0以上的可能会报错)cnpminstallecharts@4.9.0  或者 npminstallecharts@4.9.02.main.js引入importecha......
  • JSP 前端大文件上传
    ​ 4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在......
  • vue3 重置数据
    第一种import{reactive}from'vue'classInitFormData{username:string=''sex:number=1age:number=0}letformData=reactive(newInitForm......
  • vue3实现禁用物理按键返回,但是可以通过自定义app-bar的返回按钮返回
    1.注意app-bar是一个所有页面都会用到的顶部title栏,里面左侧有返回按钮;2.基于1,在app-bar组件的setup里添加这个代码:onMounted(()=>{//不能少history.pu......
  • 基于ruoyi-vue的完全免费、开源的快速开发平台
    平台简介芋道,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可100%免费使用。基于RuoYi-Vue的全新Pro版本,优化重构所有功能。基于SpringBoot+MyBat......