【项目笔记】前端实现实时检索功能

简介: 前端实现websocket检索

一.需求背景

最近遇到一个需求是后端通过websocket给前端推送数据,数据分为八种类型,通过多选框来实时展示选中的类型的数据。

二.实现思路

首先用一个数组单独去接收websocket返回的数据,接收前进行类型判断,最后合并,这个项目websocket一次只返回一条数据。具体看你需求。表格展示是用过滤后的数组。这里因为是实时检测,所以在多选结束后更新一次数据以及websocket里过滤一次保证接下来的数据是过滤后的数据。这里用的数据方法是filter、 some。

三.代码实现

data () {
   
        return {
   
            tableDate1: [], // 类型一数据
            tableDate2: [], // 类型二数据
            tableDate3: [], // 类型三数据
            tableDate4: [], // 类型四数据
            tableDate5: [], // 类型五数据
            tableDate6: [], // 类型六数据
            tableDate7: [], // 类型七数据
            tableDate8: [], // 类型八数据
            tableDate: [], // 表格中展示的数据
            tableDates: [], // 接收websocket数据
            checkedSet: ['1', '2', '3', '4', '5', '6', '7', '8'], // 多选框选中数据 默认全选

        };
    },

    mounted () {
   
        this.initWebsocket(); // 创建websocket
    },

    methods: {
   
        initWebsocket () {
   
            // 判断浏览器是否支持websocket
            if ('WebSocket' in window) {
   
                // 创建一个websocket
                let ws = new WebSocket("ws://");
                ws.onopen = function () {
   
                    ws.send('前端向后端发送数据')
                }
                ws.onmessage = (e) => {
   
                    console.log("接收到的数据:", e);
                    // 表格里同时展示八中数据的最新的一条数据
                    // 类型判断
                    if (e.type == "1") {
   
                        this.tableDate1 = [e];
                    } else if (e.type == "2") {
   
                        this.tableDate2 = [e];
                    } else if (e.type == "3") {
   
                        this.tableDate3 = [e];
                    } else if (e.type == "4") {
   
                        this.tableDate4 = [e];
                    } else if (e.type == "5") {
   
                        this.tableDate5 = [e];
                    } else if (e.type == "6") {
   
                        this.tableDate6 = [e];
                    } else if (e.type == "7") {
   
                        this.tableDate7 = [e];
                    } else if (e.type == "8") {
   
                        this.tableDate8 = [e];
                    }
                    // 合并数据
                    this.tableDates = this.tableDate1.concat(this.tableDate2, this.tableDate3, this.tableDate3, this.tableDate4, this.tableDate5, this.tableDate6, this.tableDate, this.tableDate8)
                    this.tableDate = this.tableDates.filter((item) => {
   
                        return this.checkedSet.some(val => (val == item.type));
                    })
                }
                ws.onerror = (err) => {
   
                    console.log("接口错误:", err);
                }
                ws.onclose = (e) => {
   
                    this.initWebsocket(); // 断开重连
                }
            }
        },
        // 多选选完后
        checkChange () {
   
            // 对当前表格中数据进行过滤 
            this.tableDate = this.tableDate.filter((item) => {
   
                return this.checkedSet.some(val => (val == item.type));
            })
        }
    },

有啥不懂可以私信我,大部分注释都写了。

相关文章
|
2天前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用问题之流水线构建前端项目比较慢。该如何优化
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
9天前
|
前端开发 Shell 容器
前端练习小项目——视觉冲击卡片
前端练习小项目——视觉冲击卡片
|
6天前
|
缓存 负载均衡 前端开发
SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询
SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询
9 1
|
18天前
|
缓存 前端开发 JavaScript
Webpack作为模块打包器,为前端项目提供了高度灵活和可配置的构建流程
【6月更文挑战第12天】本文探讨了优化TypeScript与Webpack构建性能的策略。理解Webpack的解析、构建和生成阶段是关键。优化包括:调整tsconfig.json(如关闭不必要的类型检查)和webpack.config.js选项,启用Webpack缓存,实现增量构建,代码拆分和懒加载。这些方法能提升构建速度,提高开发效率。
32 3
|
18天前
|
Web App开发 运维 前端开发
从0开始搭建一个前端项目的架子
从0开始搭建一个前端项目的架子
17 1
|
3天前
|
前端开发 JavaScript 数据库
如何实现前后端分离-----前端笔记
如何实现前后端分离-----前端笔记
|
3天前
|
前端开发 安全 NoSQL
技术笔记:Security前端页面配置
技术笔记:Security前端页面配置
|
18天前
|
JavaScript 前端开发 Java
【Vue实战项目】学完前端基础后,可能你还需要掌握这些才能接手开发项目
【Vue实战项目】学完前端基础后,可能你还需要掌握这些才能接手开发项目
29 0
|
27天前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
29 2
|
2月前
|
存储 前端开发 JavaScript
前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
52 1