layui:table不使用url使用data传值。layui+websocket后台推送数据实现表格更新。

在Windows和Linux系统下安装并配置JDK环境 1 各平台JDK的下载首先进行的是JDK的下载,Oracle官网的下载实在是太慢了,而且很难找到以往版本的JDK,所以这里我推荐一个博主自己搭的网站下载,里面有各个版本、各个平台的JDK。下载好的文件如下图:2 后续步骤1)Windows系统2.1 安装JDK在Windows下安装JDK的话只需要根据引导安装,不需要Linux下相对复杂的步骤,但要注意的一点是要记住自己安装好的Java目录。比如我安装的位置就是安装好的目录如下图所示:2.2 配置环境变量。 阅读详情

场景,再一次表格展示中需要实时更新,数据会通过后台websocket传送给前端。这样layui,table中的url就用不上了,需要使用data动态传值。

请看代码(代码中table嵌套了element,单元格中插入进度条。如果需要看这两者作何使用的可以看上一篇博文https://blog.youkuaiyun.com/CaptainJava/article/details/102852563)。

实现思路:

1、使用layui.table渲染表格,但是不实用url获取数据,而是使用空的data[]。

2、创建websocket连接连接服务器。

3、websocket服务器收到当前连接时介入时,推送一次当前数据。

4、在websocket 的onmessage中收到消息,调用table.reload,传入接收到的data数据。

5、websocket服务端当判断数据变更后推送一次数据,前台刷新表格即可。

上代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../static/lib/layui/css/layui.css"  media="all">
    <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
<!--    <script type="text/javascript" src="../static/js/jquery-3.4.1.js"></script>-->
    <style>
    .memberstatus-span-left {
        font-size: 25px;
    }
    .memberstatus-span-right {
        font-size: 25px;
    }
</style>
</head>
<body>

<table class="layui-hide" id="test" lay-filter="test"></table>

<script src="../static/lib/layui/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->

<script>
    layui.use([ 'table','element'], function(){
        var table = layui.table;
        var layer = layui.layer;
        //注意进度条依赖 element 模块,否则无法进行正常渲染和功能性操作
        var element = layui.element;

        table.render({
            elem: '#test'
            // ,url:'memberStatus?search=1'
            ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
            ,data: []
            // ,autoSort: false //取消自动排序
            ,cols: [
                [
                // {field:'id', title: 'ID', align: 'center',sort: true}
                ,{field:'memberName', title: '人员名称', align: 'center',sort: true} //width 支持:数字、百分比和不填写。你还可以通过 minWidth 参数局部定义当前单元格的最小宽度,layui 2.2.1 新增
                ,{field:'team', title: '队伍', align: 'center', sort: true,templet: function(d){
                    if(parseInt(d.team) =='1'){
                        // return '<span style="background-color: #FF5722;">红队</span>'
                        return '<i class="layui-icon layui-icon-group" style="font-size: 30px; color: #FF5722;"></i>  '
                    }else if(parseInt(d.team)=='2') {
                        // return '<span style="background-color: #01AAED;">蓝队</span>'
                        return '<i class="layui-icon layui-icon-group" style="font-size: 30px; color: #01AAED;"></i>  '
                    }else{
                        return d.team
                    }
                }} //单元格内容水平居中
                ,{field:'deviceCode', title: '装备编号', align: 'center',sort: true} //width 支持:数字、百分比和不填写。你还可以通过 minWidth 参数局部定义当前单元格的最小宽度,layui 2.2.1 新增
                // ,{field:'hp', title: '血量', align: 'center',sort: true}
                ,{field:'hp', title: '血量', align: 'center',sort: true,templet: function(d){
                        //判断颜色
                        var ys = '';
                        if(30<d.hp && d.hp<100){
                            ys='layui-bg-orange'
                        }else if(0<d.hp && d.hp<=30){
                            ys='layui-bg-red'
                        }
                        return '<div class="layui-progress layui-progress-big" lay-showpercent="true"><div class="layui-progress-bar '+ys+'" lay-percent="'+d.hp+'%"></div></div><br>'
                    }}
                ,{field:'hitedNumber', title: '中弹数', align: 'center',sort: true}
                ,{field:'hitNumber', title: '击中数', align: 'center',sort: true}
                ,{field:'rePlenishBullet', title: '补弹次数', align: 'center',sort: true}
                ,{field:'reviveNum', title: '复活次数', align: 'center',sort: true}

            ]
            ]
            ,done:function (res,currentCount) {
                element.render()
            }
        });


        var websocket = null;

        //判断当前浏览器是否支持WebSocket
        if ('WebSocket' in window) {
            websocket = new WebSocket("ws://"+window.location.host+"/websocket/memberstatus");
        } else {
            alert('Dont support websocket')
        }

        //连接发生错误的回调方法
        websocket.onerror = function () {
            console.log("error");
        };

        //连接成功建立的回调方法
        websocket.onopen = function () {
            console.log("open");
        };

        //接收到消息的回调方法
        websocket.onmessage = function (event) {
            var obj = JSON.parse(event.data);
            if(obj && "memberstatus"==obj.type){
                // console.log(obj.data)
                table.reload('test', {
                    elem: '#test'
                    ,data: JSON.parse(obj.data)
                });
            }
        };

        //连接关闭的回调方法
        websocket.onclose = function () {
            console.log("close");
        };

        //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
        window.onbeforeunload = function () {
            websocket.close();
        };

        //关闭连接
        function closeWebSocket() {
            websocket.close();
            window.clearInterval(intervalId);
        }

        //发送消息
        function send() {
            var message = document.getElementById('text').value;
            websocket.send(message);
        }


    });

</script>

</body>
</html>

 

layui数据表格使用url传值,增加空行的方法 网络上大部文章关于layui表格增加空行的方法都是data同步传值,设置一个空记录,然后调用reload方法,可以增加一个空行。 但是如果table是通过url异步加载数据,设置空记录再调用reload的时候,layui在后台是先调用url,取得数据,而忽略表内的现有数据,包括我们做的空记录,所以并不会新增加一行。 解决的办法是修改layui中table.js的源码,调整下图中if{} else{}的先后次序: 变更前: 变更后: 红线处增加options.data.lengt.. 阅读详情

相关推荐

Layui Table 模板应用技巧全攻略

《LayuiTable模板开发指南:从基础到高级应用》 摘要:本文全面介绍LayuiTable模板的开发技巧,涵盖基础功能与高级应用。LayuiTable作为数据展示的核心组件,支持数据绑定、分页、排序等基础功能,同时提供强大的自定义能力。文章详细解析了两种自定义实现方式(函数转义和模板选择器绑定),并深入探讨模板中的数据处理技巧,包括条件判断、逻辑处理和多种数据格式化方法。

caifox的博客 1517

WebSocket消息推送

■1.消息推送的逻辑结构设计思路 消息推送一般为某角色用户在页面上做申请操作,然后通过消息推送提醒下一个任务节点用户对上述申请数据做出处理。这里我们把消息推送分为,消息生成和消息推送2个部分。消息生成后由于我们不知道被推送者当前是否在线,所以产生的消息可不直接推送,而是将消息内容放入数据库的消息推送表中。然后,通过定时任务去不断获取需要推送的消息,判断被推送者是否在线如果在线就将消息推送出去,并更改消息状态为已推送。如果被推送者当前不在线,那么就不改变当前消息的推送状态。 ■2.代码的简单实现 为了代

weixin_41368339的博客 1190

前端面试题汇总

总结了一下之前面试遇到的问题,方便自己也方便他人

annier_11的博客 151

Tornado+Layui(八)Tornado+Layui+WebSocket 前后端分离

目的: 实现Tornado主动推送数据到前端 过程: 1、Layui中Websocket的 js代码 //此时的table只是为了渲染表格 table.render({ elem: '#current_time_msg' // table标签的ID , data: [] ...

qq_42142258的博客 1351

基于STM32F407的摄像头(不带FIFO的OV7670)图像采集及LCD显示实验-笔记整理

硬件说明 STM32F4开发板 stm32f4系列的芯片处理的能力可以说非常强大了的,而且内部还自带有数字摄像头接口(DCMI),可以说stm32f407的核心板和不带FIFO的摄像头模块OV7670简直就是绝配! 我手上的这块张这个样子 (图片来源:某宝): F4系列的DCMI接口内部结构框图如下图3所示,具体的配置使用方式可以参考以下这篇博文:《stm32f4的数字摄像头接口(DCMI)使用》 这位博主大大已经很详细地介绍了DCMI接口的具体使用方法和原理,更重要的是里面还有接口的配置函数,虽然不完

LiangWF22的博客 2万+

避开PFC设计大坑:从环路分析到参数整定的5个常见误区与解决方案

本文深入解析PFC电路设计中从环路分析到参数整定的5个常见误区,包括电感参数设计、小信号模型适用边界、电压环与电流环耦合效应等。通过实际案例和PSIM仿真数据,提供工程落地的解决方案,帮助工程师避开设计陷阱,提升电路性能与可靠性。

weixin_30666401的博客 325

Layui表格合计行终极指南:深度解析数据聚合与统计架构设计

Layui作为一套遵循浏览器原生态开发模式的Web UI组件库,其表格组件的合计行功能为数据展示提供了专业级的数据统计能力。在数据驱动的现代Web应用中,表格合计行不仅仅是简单的数值累加,更是数据可视化与业务洞察的重要工具。本文将深入剖析Layui表格合计行的高级应用,从架构设计到实战应用,提供完整的解决方案。 ## 核心理念:数据聚合的声明式配置 Layui表格合计行的核心设计哲学在于声明式

gitblog_00456的博客 785

嵌入式系统(一):鸿蒙系统

本文为期末复习笔记,内容仅供参考???? 鸿蒙系统是一款面向万物互联时代的、全新的分布式操作系统 鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念 提供全场景(移动办公、运动健康、社交通信、指挥出行、媒体娱乐等)业务能力 华为是OpenHarmony开源项目的共建者、也是共享者之一 鸿蒙技术特性 分布式设计 一次开发,多端部署 系统与硬件解耦,弹性部署 三大分布式能力 分布式软总线 设备间互联互通提供分布式通信能力 从手动发现,进化成自发现 传输高带宽关键技术-极简协议 分布式数据管

weixin_45608532的博客 4307

Swoole与Yii构建高性能Web聊天系统实战

WebSocket作为HTML5标准协议,实现了浏览器与服务器的全双工通信,解决了传统HTTP轮询的性能问题。其核心原理是通过一次TCP握手建立持久连接,支持服务端主动推送数据。在PHP生态中,Swoole扩展提供了高性能的WebSocket服务器实现,结合协程技术可大幅提升并发处理能力。Yii框架作为成熟的PHP MVC框架,提供了完善的组件体系和开发规范,特别适合快速构建业务系统。本方案将Swoole的实时通信能力与Yii的高效开发特性相结合,配合LayUI轻量级前端框架,打造了一套完整的实时聊天解决方

weixin_30905133的博客 344

绕过限制?实测修改UA在PC端运行微信小程序的可行性及风险

本文探讨了通过修改User-Agent(UA)在PC端运行微信小程序的技术可行性及风险。分析了小程序设备限制的技术原理,包括`wx.getSystemInfo`API和UA检测机制,并提供了多种修改方案及其局限性。同时强调了潜在的安全和法律风险,推荐使用官方模拟器或安卓模拟器等更安全的替代方案。

weixin_30879169的博客 363

详解Linux下使用vscode编译运行和调试C/C++

本教程将具体详解使用Visual Studio Code在Linux环境下使用C/C++方法。 GCC C++ 编译器 (g++) 和 GDB 调试器的方法。 GCC是GNU 编译器集合; GDB 是 GNU 调试器。 1.先决条件 安装Visual Studio Code. 安装C++拓展插件。点击在vscode界面最左侧的Extensions图标(打开快捷键:ctrl+shift+X),搜索“C/C++”,点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下命令

休的博客 6241

基于Spring Cloud与AI大模型的智能政务审批系统搭建实战

微服务架构通过将业务按边界拆分为独立服务,解决了单体系统在复杂审批场景下流程难扩展、模块耦合高、并发压力不均等问题。Spring Cloud提供注册中心、配置中心、网关路由与远程调用等核心能力,为政务审批系统奠定了分布式基础;Layui作为轻量级后台UI框架,无需构建工具即可快速实现表格、表单与流程交互;AI大模型则可在智能填单、材料初审、意见生成等环节提供辅助决策,让系统智能化落地。本文从技术原理出发,结合工程实践,完整讲解一个基于Spring Cloud、Layui与AI大模型的智能政务审批管理系统的搭

weixin_34198762的博客 435

大模型应用开发 100 天:Python + LLM 从入门到精通 day01~环境搭建与开发工具

Day 1 正式开启《大模型应用开发 100 天》实战旅程。本文聚焦 AI 开发最容易被忽视却至关重要的环境搭建环节,系统讲解基于 pyenv、uv、VS Code 构建一套可复现、项目隔离的标准化 Python 开发工具链。你将掌握多 Python 版本管理、极速依赖安装、虚拟环境隔离、代码规范配置完整流程,配套可直接运行的环境校验脚本与 Mermaid 架构图,规避版本冲突、环境污染等高频踩坑问题,为后续 99 天 LLM 项目开发筑牢底层基础。来自华北理工大学段一凡的博客文章

段一凡的博客 247

基于Spring Boot的民间救援队救助系统:毕业设计完整实现指南

在软件开发领域,企业级应用开发的核心在于将技术栈与真实业务场景深度融合,实现从技术实现到业务建模的思维跨越。Spring Boot作为Java生态中广受欢迎的快速开发框架,通过简化配置和提供丰富的Starter依赖,极大地提升了后端服务的构建效率。其技术价值在于能够帮助开发者聚焦核心业务逻辑,快速搭建出稳定、可扩展的RESTful API服务。结合MyBatis-Plus等持久层框架,可以高效地进行数据库操作与数据建模。这类技术组合的典型应用场景包括各类需要**数字化、流程化管理**的业务系统,例如电商平台

weixin_33739523的博客 420

华为HCIP的学习大纲和计划

HCIP(华为认证 ICT 高级工程师)核心围绕华为 ICT 技术体系,不同方向(如路由交换、云计算、安全等)课程目录不同,以下是最热门的。

迷逝 575

Python爬虫实战:如何从Google Maps和OpenStreetMap抓取地理坐标数据

地点名称:地理位置的名称或地址。地理坐标:经度和纬度。类别信息:比如餐馆、商店、公园等。评论数据:如果可用,获取用户评论。本文介绍了如何使用Python爬虫从Google Maps和OpenStreetMap抓取地理坐标数据,并展示了如何存储和分析这些数据。通过实际的代码示例,您可以学习到如何处理不同类型的地图数据抓取任务,以及如何应对反爬虫机制。掌握这些技术后,您可以进行更广泛的地理数据分析,提供更有价值的地理信息服务。

2201_76125261的博客 1041

Spring Boot实战:民间救援队救助系统设计与开发全解析

在Java Web开发领域,Spring Boot作为主流的快速应用开发框架,通过自动配置和约定优于配置的原则,极大地简化了企业级应用的搭建过程。其核心原理在于通过内嵌Servlet容器和Starter依赖,实现了开箱即用的开发体验,显著提升了开发效率。这一技术价值在于让开发者能够更专注于业务逻辑而非环境配置,尤其适合构建如管理系统、API服务等各类Web应用。在众多应用场景中,毕业设计和课程设计是学生将理论知识转化为工程实践的关键环节,一个功能完整、结构清晰的项目案例至关重要。本文聚焦于一个典型的Spri

weixin_33892359的博客 397

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Layui table的动态表格lay-data怎么传递参数给后端

Layui table的动态表格lay-data怎么传递参数给后端

小洪帽i的博客 4999

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

springboot+websocket+layui制作的实时聊天室,后端开发入门样例

这里写目录标题前言效果图涉及技术springbootlayuiwebsocket实现思路websocket在springboot下的实现前端实现建立websocket连接前端对应的websocket方法代码实现后端代码建立连接时接收到消息时发送消息总代码前端代码总结 前言 复习感觉无聊的时候就想拿以前学习的东西做几个小案例,这段时间在搭一个博客网站,正好做到私信这个模块,突然想试试看看可不可以做成一个实时通信的私信功能,思路一来就一发不可收拾,开整开征。 效果图 如下图所示,可以实现文字的即时通讯,图片发送

就很有趣的博客 2993

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

layui使用data参数渲染table,页面不展示的问题

子窗口调用父窗口变量传入数据realData,如果data不写成变量形式是可以渲染成功的(固定数据可以渲染).写成变量就失败了只显示加载层图片.控制台没有报错 var realData=[]; if(parent.autoPaymentSortingInfo&&parent.autoPaymentSortingInfo!=null){ realData=parent.autoPaymentSortingInfo; }else{ realData=[]; } var data=[

qq_41896159的博客 2903

RabbitMq+WebSocket+Quartz+layui 实现网页端实时消息推送

RabbitMq+WebSocket+Quartz+layui 实现网页端实时消息推送讲在前面我的思路码云Demo地址首先安装erlang安装RabbitMqdemo项目模拟发送消息RabbitMq配置WebSocket配置监听消息队列模拟发送消息消息发送逻辑详解定时循环发送消息测试定时发送消息quartz 定时任务实现逻辑步骤 讲在前面 前两天在项目中使用flowable编写流程时,项目上说在执...

woyooo的博客 3784

.net core && layui && WebSocket入门整合

1、Controller层创建文件:BaseWebSocket.cs文件。 namespace Base.Core.Controllers.WebSocketKing { public class BaseWebSocket { //private WebSocket socket = null; WebSocket socket; BaseWebSocket(WebSocket socket) { .

hgy1329852351的博客 555

【layui】table数据表格使用经验

(1)操作栏按钮事件监听 table.on('tool(zongdi_extra_table)', function (obj) { if (obj.event == 'del') {//绑定的事件 var tableData = table.cache['zongdi_extra_table']; obj.del();//删除一行表格元素样式 tableData.splice(index, 1);//删除表格数据缓存 } } (2)单元

初叙 1027

layui table 表格两种赋值方式下,data分页效果有效, url分页效果的失效 问题的解决

layui table 表格两种赋值方式下,data分页效果有效, url分页效果的失效 问题的解决。 由于后台JSon的问题,于是在给前台table传值的时候使用了parseData方法,但是发现分页莫名其妙的失效了。于是我查阅各种历史典籍,终于查到这位大佬的资料。 https://www.cnblogs.com/waihaha/p/10218890.html 经过这位大佬的讲解,发现原来是layui的table.js中,关于parseData方法返回时,没有添加分页功能导致的。 i.renderData

pxfpxf的博客 1434

基于SSM+Maven+Shiro+Layui+Websocket在线论坛交流聊天bbs系统设计-计算机毕业源码设计

(1)游戏交流,(2)学习资源共享,(3)编程开发,(4)告白墙,(5)兼职,(6)综合交流,(7)求助问答,(8)即时通讯(希望实现在线聊天功能),(9)休闲灌水。(1)官方通告,(2)申述举报,(3)站务专区。

计算机源码设计案例的博客 710

LayUI数据表格的使用指南

学习视频:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

2301_82242204的博客 3469
上一篇: layui:table中使用element,表格单元格中使用进度条
下一篇: 环境搭建常用博客、文章地址记录簿
grootblockchain
博客等级 码龄11年 55粉丝 101原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值