You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC技术问题:局部刷新元素与RFID数据实时处理

解决方案

一、局部刷新页面中的多个表格

不用整页刷新,推荐两种实用方案:

1. 定时轮询+DOM更新(快速落地)

用setInterval定时调用后端接口获取表格最新数据,直接替换页面上的表格内容,避免整页刷新的生硬感。示例代码:

// 定义刷新表格的核心函数
function refreshTables() {
  // 更新表格1:从后端获取渲染好的HTML片段
  fetch('/api/table1/latest')
    .then(res => res.text())
    .then(html => {
      document.getElementById('table1-container').innerHTML = html;
    });

  // 同理更新表格2
  fetch('/api/table2/latest')
    .then(res => res.text())
    .then(html => {
      document.getElementById('table2-container').innerHTML = html;
    });
}

// 每3秒执行一次刷新(间隔可根据业务调整)
setInterval(refreshTables, 3000);

如果后端返回JSON格式数据,还可以自己拼接表格DOM元素,灵活性更强。

2. WebSocket实时推送(高效低延迟)

如果数据更新频繁,用WebSocket让后端主动推送变化,前端收到后立即更新表格,避免无用的轮询请求。示例前端代码:

const socket = new WebSocket('ws://your-server/ws/table-updates');

socket.onmessage = function(event) {
  const updateData = JSON.parse(event.data);
  // 根据推送的标识更新对应表格
  if (updateData.target === 'table1') {
    document.getElementById('table1-container').innerHTML = updateData.content;
  } else if (updateData.target === 'table2') {
    document.getElementById('table2-container').innerHTML = updateData.content;
  }
};

后端需要实现WebSocket服务,当数据库数据变化时主动向前端推送更新内容。

二、持续读取RFID并更新数据库(无页面也能运行)

这个功能完全不能依赖前端页面,必须用后台服务实现:

1. 编写独立的后台程序

用Python、Node.js、C#等语言写一个独立程序,核心做两件事:

  • 对接RFID阅读器:根据阅读器的硬件协议(比如USB串口、TCP/IP),用对应SDK或库建立连接,持续监听数据流
  • 操作数据库:读取到RFID芯片数据后,直接执行数据库更新语句

示例Python代码(基于pyserial读取串口RFID):

import serial
import psycopg2  # 以PostgreSQL为例,其他数据库用对应驱动

# 连接RFID阅读器串口(参数根据硬件实际配置调整)
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
# 连接数据库
conn = psycopg2.connect(
  dbname="your_db",
  user="your_user",
  password="your_pass",
  host="localhost"
)
cur = conn.cursor()

while True:
    # 读取RFID数据并去除冗余字符
    rfid_code = ser.readline().decode('utf-8').strip()
    if rfid_code:
        # 执行数据库更新
        update_sql = "UPDATE asset SET last_scanned = NOW() WHERE rfid = %s"
        cur.execute(update_sql, (rfid_code,))
        conn.commit()

2. 将程序注册为系统服务

把这个程序配置成系统后台服务,确保即使没有页面打开、用户未登录,程序也能持续运行:

  • Linux:用systemd创建服务配置文件,设置开机自启
  • Windows:用NSSM(Non-Sucking Service Manager)将程序包装成Windows服务

3. 前端交互(可选)

如果前端需要展示实时数据,让后台服务同时提供API或WebSocket接口,前端通过这些接口获取RFID更新后的数据库数据即可。

内容的提问来源于stack exchange,提问作者Thomas Koch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:05:16