【JS跨端通信实现全攻略】:揭秘5种高效通信方案及落地实践

第一章:JS跨端通信实现

在现代前端开发中,JavaScript 跨端通信已成为构建多平台应用的核心技术之一。无论是 Web 与 Native 的交互,还是小程序与 H5 页面之间的数据传递,跨环境通信机制都起着至关重要的作用。
消息传递机制
跨端通信通常依赖于事件驱动的消息系统。例如,在 WebView 环境中,JavaScript 可通过 window.postMessage 向宿主环境发送消息,而原生层则监听相应的事件回调。
// JS 发送消息到原生
window.postMessage({
  action: 'login',
  data: { userId: '12345' }
});

// 监听来自原生的消息
window.addEventListener('message', function(event) {
  const { action, data } = event.data;
  if (action === 'loginSuccess') {
    console.log('登录成功:', data);
  }
});

通信协议设计

为保证通信的可靠性与可维护性,建议采用统一的协议格式。常见的结构包括指令类型、唯一标识、参数数据和回调函数。
  1. 定义标准消息结构,包含 type、payload、callbackId 字段
  2. 宿主环境解析消息并执行对应操作
  3. 执行完成后通过 JSBridge 回调返回结果

常用通信方式对比

方式平台支持安全性适用场景
postMessageWeb、React Native高H5 与容器通信
JSBridgeiOS、Android中移动端混合开发
URL Scheme全平台低简单跳转与传参
graph LR A[H5页面] -- postMessage --> B[WebView容器] B -- 执行原生功能 --> C[摄像头/定位] C -- 回调结果 --> B B -- sendMessage --> A

第二章:主流跨端通信技术原理与对比

2.1 基于PostMessage的页面间通信机制解析

在跨源iframe或窗口间安全传递数据时,postMessage 是首选通信机制。它通过事件驱动方式实现解耦通信,避免直接访问对方上下文带来的安全风险。
基本使用方式
// 发送消息
window.postMessage(data, targetOrigin);

// 监听消息
window.addEventListener('message', function(event) {
  // 验证来源
  if (event.origin !== 'https://trusted-site.com') return;
  console.log('Received:', event.data);
});
其中,data 为可序列化的对象,targetOrigin 指定目标窗口的源,防止信息泄露。
典型应用场景
  • 主窗口与嵌入式iframe双向通信
  • 跨域页面数据同步
  • 微前端架构中子应用与基座交互

2.2 WebSocket双向实时通信的理论基础与连接模型

WebSocket 是一种基于 TCP 的应用层协议,通过一次 HTTP 握手建立持久化全双工连接,实现客户端与服务器之间的实时双向通信。其核心在于避免传统轮询带来的延迟与资源浪费。
握手过程与协议升级
WebSocket 连接始于一个 HTTP 请求,携带 Upgrade: websocket 头部,请求协议升级:
GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
服务器响应 101 状态码表示切换协议成功,此后通信不再受 HTTP 请求-响应模式限制。
数据帧结构与传输机制
数据以帧(frame)为单位传输,支持文本与二进制类型。每一帧包含操作码、掩码标志和有效载荷长度,确保高效解析与安全性。
  • 全双工:双方可同时发送与接收数据
  • 低开销:帧头最小仅 2 字节
  • 长连接:连接一旦建立,持续保持直至显式关闭

2.3 Server-Sent Events在单向推送场景中的应用实践

Server-Sent Events(SSE)是一种基于HTTP的服务器向客户端单向推送数据的技术,适用于实时通知、股票行情更新等场景。相比WebSocket,SSE协议更轻量,且天然支持自动重连与事件溯源。
基本使用方式
前端通过EventSource API监听服务端推送:
const eventSource = new EventSource('/stream');
eventSource.onmessage = function(event) {
  console.log('收到消息:', event.data);
};
该代码创建一个持续连接,浏览器会自动处理断线重连。服务端需设置Content-Type: text/event-stream,并以data:前缀发送消息。
适用场景对比
特性SSEWebSocket
通信方向单向(服务端→客户端)双向
协议HTTP自定义协议
兼容性良好(除IE)广泛

2.4 SharedWorker协同多页面数据交互的技术细节

数据同步机制
SharedWorker 允许多个浏览器页面共享同一个后台线程,实现跨页面通信。通过建立持久化的消息通道,各页面可向 Worker 发送与接收结构化数据。
  • 独立于页面生命周期运行,提升资源利用率
  • 支持结构化克隆算法传递复杂对象
  • 需通过 MessagePort 显式建立连接
通信示例
// 页面端连接 SharedWorker
const worker = new SharedWorker('worker.js');
worker.port.start();
worker.port.postMessage({ data: 'from page1' });

worker.port.onmessage = (e) => {
  console.log('Received:', e.data);
};
上述代码初始化 SharedWorker 并启动消息端口。postMessage 发送数据,onmessage 监听响应,所有连接该 Worker 的页面均可收到广播消息。
特性描述
跨页面共享多个标签页共用同一实例
线程安全消息机制隔离状态冲突

2.5 使用BroadcastChannel实现同源上下文高效广播

BroadcastChannel 是现代浏览器提供的轻量级通信机制,专用于同源不同上下文(如页面、Worker)之间的消息广播。
基本使用方式
// 创建频道
const channel = new BroadcastChannel('sync_channel');

// 发送消息
channel.postMessage({ type: 'UPDATE', data: 123 });

// 监听消息
channel.onmessage = (event) => {
  console.log('收到:', event.data);
};
上述代码中,所有同源页面或 Worker 实例只要订阅相同频道名称,即可接收广播消息。postMessage 支持结构化克隆的数据类型,无需序列化。
与其它通信机制对比
机制跨页面支持Worker数据类型
localStorage + storage事件是否仅字符串
BroadcastChannel是是结构化克隆

第三章:现代框架下的跨端通信集成方案

3.1 利用Vue/React状态管理桥接多窗口通信

在现代前端应用中,跨浏览器窗口的通信常用于多标签页协同场景。通过结合 Vuex 或 Redux 等状态管理方案与浏览器原生的 `BroadcastChannel API`,可实现高效、可靠的状态同步。
数据同步机制
利用全局状态管理器作为单一数据源,所有窗口监听同一频道的消息变更,确保状态一致性。
const channel = new BroadcastChannel('sync_channel');
store.subscribe((mutation) => {
  channel.postMessage({ type: mutation.type, payload: mutation.payload });
});
channel.onmessage = (event) => {
  store.dispatch('syncState', event.data);
};
上述代码中,每个状态变更都会通过 `BroadcastChannel` 广播,其他窗口接收后触发同步动作,实现跨窗口响应式更新。
优势对比
  • Vuex/Redux 提供结构化状态管理,便于追踪变更
  • BroadcastChannel 是轻量级、低延迟的通信方案
  • 避免频繁使用 localStorage 触发多余事件

3.2 结合Redux Toolkit实现跨标签页状态同步

在现代Web应用中,用户常在多个浏览器标签页间切换操作。为确保各标签页间的状态一致性,可结合Redux Toolkit与浏览器的`BroadcastChannel API`实现跨标签页状态同步。
数据同步机制
通过监听全局状态变化,将关键状态变更广播至同源的其他标签页:
const channel = new BroadcastChannel('redux_sync');

store.subscribe(() => {
  const state = store.getState();
  channel.postMessage({ type: 'STATE_UPDATE', payload: state.user });
});
上述代码监听Redux Store的变化,并通过`BroadcastChannel`发送用户相关状态更新。所有监听该频道的标签页将接收消息并触发本地状态更新。
接收端处理
  • 创建相同频道名称的监听器
  • 接收到消息后使用Redux action更新本地状态
  • 避免循环广播:需校验消息来源

3.3 在微前端架构中设计统一通信中间层

在微前端架构中,多个独立子应用并存,跨应用通信成为关键挑战。为实现松耦合、高内聚的交互模式,需设计统一的通信中间层。
事件总线机制
采用发布-订阅模式构建全局事件总线,支持跨应用消息传递:
class EventBus {
  constructor() {
    this.events = {};
  }
  on(event, callback) {
    if (!this.events[event]) this.events[event] = [];
    this.events[event].push(callback);
  }
  emit(event, data) {
    if (this.events[event]) {
      this.events[event].forEach(callback => callback(data));
    }
  }
}
该实现通过维护事件队列,允许子应用注册监听或广播消息,解耦通信双方。
通信协议规范
定义标准化消息结构,确保数据一致性:
字段类型说明
typeString消息类型标识
payloadObject携带数据
fromString发送方应用名

第四章:典型业务场景下的落地实践

4.1 多标签页登录状态同步与Token刷新实战

在现代Web应用中,用户常在多个浏览器标签页间切换,如何保证登录状态一致性和Token的及时刷新成为关键问题。
使用Storage事件实现状态同步
通过监听storage事件,可在不同标签页间同步登录状态:
window.addEventListener('storage', (event) => {
  if (event.key === 'authToken') {
    // 更新当前页面的认证状态
    updateAuthState(event.newValue);
  }
});
当任一标签页更新localStorage中的token时,其他标签页会触发此事件,从而实现跨页通信。
Token自动刷新机制设计
采用定时检查+静默刷新策略,避免频繁重新登录:
  • 利用setInterval定期检查Token有效期
  • 通过后台接口静默获取新Token
  • 更新后广播至所有标签页
该方案结合前端事件驱动与后端鉴权,保障了用户体验与系统安全。

4.2 跨域iframe嵌入式应用的安全通信策略

在现代Web架构中,跨域iframe常用于集成第三方服务。为确保通信安全,推荐使用 postMessage API 实现受控的消息传递。
安全的消息通信机制
window.addEventListener('message', function(event) {
  // 验证消息来源的域名
  if (event.origin !== 'https://trusted-embedder.com') return;
  
  // 验证消息数据结构
  if (event.data.type === 'AUTH_TOKEN_REQUEST') {
    event.source.postMessage({
      type: 'AUTH_TOKEN_RESPONSE',
      token: 'secured-jwt-token'
    }, event.origin);
  }
});
上述代码通过校验 event.origin 确保仅与可信源通信,防止XSS或信息泄露。使用结构化消息类型可避免误处理恶意数据。
推荐的安全策略清单
  • 始终验证 message.origin 值
  • 限制 iframe 的 sandbox 属性权限
  • 启用 Content Security Policy(CSP)阻止未授权脚本
  • 避免传输敏感信息明文

4.3 实时消息中心基于WebSocket的跨端推送方案

为实现多终端实时消息同步,采用WebSocket协议构建全双工通信通道。相比轮询机制,WebSocket显著降低延迟与服务负载。
连接建立流程
客户端通过标准握手升级至WebSocket连接:
const socket = new WebSocket('wss://api.example.com/msg-center');
socket.onopen = () => console.log('WebSocket connected');
该代码初始化安全WebSocket连接,wss确保传输加密,onopen回调标识连接就绪。
消息广播架构
后端使用消息队列解耦生产者与消费者:
组件职责
Gateway管理连接生命周期
Broker转发消息至Kafka
Worker向客户端推送数据

4.4 浏览器与PWA应用间的Service Worker协调通信

Service Worker 作为 PWA 的核心组件,承担着浏览器与应用间通信的枢纽角色。它运行在独立于主线程的背景下,通过事件驱动机制实现资源拦截、缓存管理和消息推送。
消息传递机制
通过 postMessage 接口,页面可与 Service Worker 双向通信:
// 主线程发送消息
navigator.serviceWorker.controller.postMessage({
  type: 'SYNC_DATA',
  payload: { userId: 123 }
});

// Service Worker 中监听
self.addEventListener('message', event => {
  if (event.data.type === 'SYNC_DATA') {
    console.log('收到同步请求:', event.data.payload);
  }
});
上述代码展示了主页面向 Service Worker 发送结构化消息的过程。postMessage 方法允许传输 JSON 序列化对象,event.data 包含传递的数据内容,适用于触发后台同步或配置更新。
生命周期协调
  • 注册阶段:浏览器加载并安装 Service Worker 脚本
  • 激活阶段:接管客户端控制权,清理旧缓存
  • 运行阶段:响应 fetch 和 message 事件
这种分阶段的协调机制确保了版本切换时的稳定性。

第五章:总结与展望

技术演进中的架构优化路径
现代分布式系统持续向轻量化、高可用方向演进。以 Kubernetes 为例,通过自定义控制器实现 CRD 扩展已成为微服务治理的主流方案。以下代码展示了如何注册一个简单的自定义资源:

// 定义CRD结构
type RedisCluster struct {
    metav1.TypeMeta   `json:",inline"`
    metav1.ObjectMeta `json:"metadata,omitempty"`
    Spec              RedisClusterSpec `json:"spec"`
}

// 注册API Scheme
func init() {
    SchemeBuilder.Register(&RedisCluster{}, &RedisClusterList{})
}
可观测性体系的落地实践
在生产环境中,日志、指标与链路追踪缺一不可。某金融客户通过 OpenTelemetry 统一采集网关层调用链,结合 Prometheus 报警规则实现了毫秒级故障定位。
  • 使用 Fluent Bit 收集容器标准输出日志
  • 通过 Jaeger UI 分析跨服务调用延迟瓶颈
  • 基于 Grafana 面板设置 P99 延迟阈值告警
未来云原生安全趋势
随着零信任架构普及,服务间通信需默认加密且强制身份验证。SPIFFE/SPIRE 正在成为工作负载身份标准。下表对比了主流身份认证机制:
机制适用场景密钥轮换支持
mTLS + Cert-ManagerKubernetes 内部服务支持(基于CA)
SPIFFE ID + Workload API跨集群/混合云自动轮换
[Service A] --(mTLS)--> [Sidecar Proxy] --(JWT)-> [AuthZ Server]
微信小程序连接本地MySQL数据库:Node.js后端API搭建全攻略 在前后端分离架构中,前端应用通常无法直接访问数据库,这是出于安全性和架构设计的核心原则。其原理在于,直接暴露数据库连接信息会带来严重的安全风险,因此需要通过后端API作为中间层进行数据交互。这种模式的技术价值在于实现了业务逻辑与数据访问的解耦,提升了应用的安全性和可维护性。在微信小程序开发等场景中,由于平台安全策略限制,这一模式尤为重要。开发者常面临在无云服务器时快速搭建本地开发环境的需求,此时,利用Node.js和Express框架构建本地API服务,并借助连接池技术高效管理数据库连接,成为连接小程序前端 阅读详情

相关推荐

Qt工业HMI实战:从STM32通信到界面开发全攻略

在嵌入式系统与工业自动化领域,人机交互界面(HMI)的开发始终是连接设备控制与用户操作的关键环节。传统的组态软件或串口屏方案常在交互复杂度、成本与可扩展性上捉襟见肘,而纯单片机GUI库又难以应对高分辨率、多动效的现代界面需求。Qt作为一套成熟的跨平台C++应用框架,凭借其强大的信号槽机制、声明式QML语言以及完善的图形渲染能力,成为构建高性能工业HMI的主流选择。它既能运行在嵌入式Linux设备上,也能与STM32等MCU通过串口、以太网或CAN总线高效通信,实现从数据采集、逻辑控制到可视化交互的全链路覆盖

weixin_30564901的博客 323

js中【postMessage】八大点解读+完整示例

是一个强大而灵活的 API,能够实现不同窗口、iframe、Web Worker 以及其他上下文之间的安全通信。虽然它简化了跨域通信的实现,但也带来了潜在的安全风险。使用时,必须注意确保消息的发送和接收过程都是可信的,尤其是要谨慎指定和验证消息来源的origin属性。

2301_79858914的博客 7869

Cocos Creator 安装与配置全攻略:从环境准备到多平台发布

游戏开发引擎是构建互动内容的核心工具,其工作原理在于提供一套完整的工具链,将代码逻辑、美术资源和物理模拟等元素整合为可执行的应用。在众多引擎中,Cocos以其对2D和H5的极致优化而著称,其技术价值在于实现了“一次开发,多端发布”的高效工作流,显著降低了跨平台开发的门槛。在应用场景上,它尤其适合移动游戏、微信小游戏和Web互动内容的快速开发。本文聚焦于Cocos Creator的安装与配置,详细拆解了从Node.js、Python等运行环境准备,到编辑器设置、各平台SDK(如Android NDK)配置的全

weixin_33672400的博客 372

js之iframe父、子页面通信

一般先加载完父页面才会去加载子页面,所以:必须要确保在iframe加载完成后再进行操作,如果iframe还未加载完成就开始调用里面的方法或变量,会产生错误。判断iframe是否加载完成有两种方法:1. iframe上用onload事件2. 用document.readyState=="complete"来判断。

考拉很OK 1346

物联网毕业设计全攻略:从STM32到云平台的项目实现与创新

物联网技术通过传感器、嵌入式系统和网络通信,实现了物理世界与数字世界的连接与数据交互。其核心原理在于利用微控制器采集终端数据,并通过无线协议传输至云端进行处理与分析,从而赋予设备感知、通信与智能决策的能力。这一技术架构在智慧农业、环境监测、工业控制等领域具有广泛的应用价值,能够有效提升效率与自动化水平。本文聚焦于基于STM32和云平台的物联网系统构建,详细解析了传感器数据采集、ESP8266通信模块应用以及云端服务集成等关键技术环节,为相关开发提供了完整的实践路径。

weixin_30906185的博客 444

Web跨浏览器进程通信(Web跨域)

在之前一篇文章里尝试了跨浏览器的数据共享,最后提到使用LocalConnection还可以实现跨浏览器消息交互的可行性。   花了两个晚上简略的研究了下,LocalConnection的单向通信非常的简单,不过要实现多个终端交互,必须自己实现一套消息机制,见智见仁了。   为了简单演示,本例使用了基于广播的观察者模式:每个终端可以订阅自己感兴趣的主题,也可以向广播发送消息,通知其他感兴趣的终端。   Demo: http://www.etherdream.com/FunnyScript/WebIPC/ (多开几个浏览器页面小窗口,即可测试)   比较遗憾的是最新版的Chrome浏览器仍然无法和

JavaScript 跨浏览器窗口通信

Broadcast Channel 与 window.postMessage 进行浏览器跨窗口通信

cocolove4563d的博客 1010

BSW: Dcm模块配置--28服务

这个章节讲解下UDS中的28服务(Communcation Control)的配置,顾名思义,对当前ECU的通讯状态进行变更,主要设置应用报文,网络管理报文的收发控制,通常应用在刷写APP软件时,降低总线负载。这里首先要提醒的一点是,28服务几乎不需要手写代码,只有在客户需求要求前置条件不满足时报特定NRC时才需要填充代码。实际配置中主要涉及的模块有DCM,BSWM,ComM,RTE.2.BswM模块的配置。3.ComM模块的配置。1.DCM模块的配置。

Forever_Oct的博客 3088

JS 跨标签通信(实时)

跨标签通信

一只路过的小码农 1131

MoveIt2项目想换掉KDL求解器?试试这个trac_ik插件(附源码编译避坑指南)

本文详细介绍了如何在MoveIt2项目中用trac_ik插件替代KDL求解器,提升机械臂运动学求解的效率和成功率。内容涵盖环境准备、源码编译避坑、项目集成及性能调优,特别适合需要高精度控制的协作机械臂应用场景。通过实测数据对比,trac_ik在求解时间和奇异点处理上显著优于传统KDL求解器。

weixin_30730053的博客 699

全新RGB-D及平面法线数据集DIODE

丰田工业大学联合芝加哥大学和北航发布全新RGB-D及平面法线数据集 DIODE (Dense Indoor and Outdoor DEpth)。

qq_43477338的博客 1540

js页面通讯方式有什么

使用 Web Worker 在后台线程中运行 JavaScript 代码,可与主页面进行双向通讯,提高页面性能和响应速度。- 使用 WebSocket API 进行双向实时通讯,支持客户端和服务器之间的长连接通讯,适用于需要实时性的场景。- 使用 IndexedDB 进行客户端数据库的操作,可以在客户端存储大量结构化数据,并支持复杂的查询。- 在不同窗口、框架或标签页之间进行通讯,可以跨域通讯,用于实现页面间的消息传递。- 使用浏览器的 Cookie 机制,在客户端和服务器之间进行简单的数据传递。

子玉的博客 701

从零配置ORB-SLAM3:TUM-VI数据集yaml文件参数调优指南

本文深入解析了ORB-SLAM3在TUM-VI数据集上的yaml配置文件参数调优方法。针对双目惯性模式,详细拆解了相机标定、IMU噪声模型和ORB特征提取三大模块的关键参数,解释了其原理与影响,并通过实战案例展示了如何通过调整特征点数量、FAST阈值及IMU噪声参数,有效提升系统在低纹理环境下的鲁棒性和轨迹精度。

weixin_29071809的博客 153

uni-app跨端开发实战:从环境搭建到多端发布全攻略

跨端开发框架通过一套代码实现多平台应用部署,其核心原理在于利用统一的JavaScript运行时和原生渲染桥接技术,将Web技术栈转化为各平台原生组件。这种技术方案为开发者带来了显著的工程价值,大幅降低了在多平台(如微信小程序、App、H5)间维护同一业务逻辑的开发和维护成本,尤其适合追求快速迭代和验证产品的团队。在实际应用场景中,开发者需要掌握核心工具链配置、项目结构规范、条件编译等关键技术点,以优雅处理平台差异。本文以uni-app框架为例,深入解析其开发环境搭建、多端调试技巧以及性能优化策略,其中HBu

weixin_30314813的博客 487

ABAP 系统里使用 SAP Joule 辅助编程的前提条件

只是说这些大语言模型是针对互联网上能够挖掘到的所有数据进行训练,不像 SAP Joule 那样术业有专攻,仅仅深耕 SAP 技术和业务领域,因此大伙儿对 SAP Joule 的期望值,也远远高于通过大语言模型。SAP Joule 从 ABAP Development Tool 的 Chat 窗口中接收到的对话请求,都会路由到 SAP BTP 上的 AI Foundation.在上述 ABAP 环境中启用 SAP Joule,需要购买额外的 license:8019124.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 799

2025美赛E题为农业留出空间(附代码+全保姆教程)Making Room for Agriculture

有机农业的核心在于减少化学投入,促进自然控制和可持续性。变量定义CCC: 作物种群III: 害虫种群PPP: 天然捕食者种群(蝙蝠、鸟类等)BBB: 生物多样性水平(以种类数量表示)SSS: 土壤健康指数(影响植物繁殖与作物生长)EEE: 农业生态系统的整体稳定性。

博客 1497

Node.js连接SQL Server全攻略:从前端到数据库的完整实践

数据库操作是后端开发的核心,但现代全栈开发中,前端开发者直接操作数据库的需求日益增长。通过Node.js环境,开发者可以独立完成数据库连接与操作,这不仅能提升开发效率,还能深化对数据流转全链条的理解。其技术原理在于利用驱动库(如tedious或mssql)建立与SQL Server的通信,通过连接池管理优化性能,并借助参数化查询保障数据安全。这一技能在快速搭建Mock服务器、处理数据迁移脚本或开发内部工具等场景中极具价值。本文聚焦于Node.js连接SQL Server的实战,详细解析了从环境配置、基础CR

weixin_34062469的博客 404

uniapp - 详解使用高德地图在地图上实现绘制边界/点聚合/行政区域高亮等功能,Uniapp高德地图点聚合标记及绘制点线面示例代码(全端兼容H5网页、小程序、安卓app、苹果app、nvue)

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,高德地图,uniAPP高德地图实现点聚合,地图区域描边、点标记、点信息详情弹窗,实现绘制边界区域,uniapp H5使用高德地图实现点聚合、行政区域高亮,实现高德地图的marker聚合功能,高德地图进行marker标点,点信息展示,点击标记点弹出对话框,点击聚合点后显示信息模态框,打标点,【Uniapp】高德地图的接入自定义标点与信息窗体使用,绘制行政区域边界,绘制多边形,电子围栏,高德行政区划边界,

✅ 精选推荐文章 1万+

VSCode JavaScript 调试全攻略:从断点到异步代码与前端框架

调试是软件开发中定位和修复代码错误的核心技术,其原理在于通过调试器控制程序执行流、实时监控变量状态和调用堆栈。掌握调试技术能显著提升代码质量和开发效率,尤其适用于复杂异步逻辑、前端框架应用和Node.js服务端开发等场景。本文基于VSCode这一主流编辑器,详细讲解如何配置Launch与Attach两种调试模式,并深入演示如何利用断点、监视表达式和调用堆栈等工具,高效解决包括Promise、Async/Await在内的异步代码问题,以及如何借助Source Maps调试React、Vue等前端框架的源代码,

weixin_30352191的博客 293

Python从0到100(十九):Python标准库初探

哈希函数又称哈希算法或散列函数,是一种为已有的数据创建“数字指纹”(哈希摘要)的方法。哈希函数把数据压缩成摘要,对于相同的输入,哈希函数可以生成相同的摘要(数字指纹),需要注意的是这个过程并不可逆(不能通过摘要计算出输入的内容)。举一个简单的例子,用户注册时我们希望在数据库中保存用户的密码,很显然我们不能将用户密码直接保存在数据库中,这样可能会导致用户隐私的泄露,所以在数据库中保存用户密码时,通常都会将密码的“指纹”保存起来,用户登录时通过哈希函数计算密码的“指纹”再进行匹配来判断用户登录是否成功。

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 5004

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

解锁5大安防突破:wvp-GB28181-pro视频监控平台全攻略

在当今安防监控领域,企业面临着设备品牌繁杂、协议标准不一、部署流程复杂等诸多挑战。wvp-GB28181-pro作为一款基于GB/T 28181-2016标准的开源视频监控平台,通过标准化协议对接,实现了海康、大华、宇视等多品牌设备的无缝集成和统一管理,为企业级安防监控提供了完整解决方案。本文将从价值定位、场景落地、技术解析、实践指南和问题解决五个维度,全面剖析该平台的核心优势与应用方法。 ##

gitblog_00112的博客 155

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

5个革命性的企业流程自动化核心功能:Workflow开源审批系统全攻略

在数字化转型加速的今天,企业流程自动化已成为提升运营效率的关键。Workflow作为一款基于Vue.js技术栈开发的开源审批流程管理系统,通过**审批流程引擎**与**可视化流程设计**等核心功能,帮助企业构建灵活、高效的审批体系,完美复刻钉钉审批的交互体验,同时保持开源项目的高度可定制性。本文将从价值定位、快速上手、功能拆解、场景落地到扩展指南,全面解析这款企业级流程管理神器。 ## 如何通过

gitblog_01184的博客 398

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

抖音碰一碰发视频源码部署全攻略:从技术实现到落地实战

视频传输完成后,系统会自动将视频发布到抖音平台,并给予用户成功发布的反馈,可能是一个欢快的提示音,也可能是一个醒目的弹窗,告诉用户他们的精彩瞬间已经成功分享给全世界。想象一下,在热闹的聚会上,朋友间只需碰一碰手机,就能立刻分享精彩瞬间的视频,这种便捷与高效,正是 NFC 技术带来的独特魅力。例如,根据最新的移动操作系统市场份额报告显示,Android 14.8 + 和 iOS 21.5 + 系统的设备占比超过了 70%,这意味着我们的功能能够触达绝大多数的抖音用户,为他们带来便捷的碰一碰发视频体验。

VX_UP2020J的博客 1553

免费部署智能代码助手:本地运行与云端替代方案全攻略

智能代码助手通过深度理解代码上下文,提供精准的代码补全、解释和生成能力,其核心原理基于大语言模型对编程语言的模式学习。这项技术能显著提升开发效率,减少重复编码工作,适用于个人学习、项目原型开发等多种场景。对于希望零成本体验智能编程辅助的开发者,可通过本地部署开源代码模型(如DeepSeek-Coder)或配置VS Code插件连接免费API后端等方案实现。这些方法不仅降低了使用门槛,还能在保证功能相近的前提下,通过Ollama等工具实现私有化部署,兼顾了性能与数据隐私需求。

weixin_33862993的博客 332

毕业设计实战:SpringBoot火锅店管理系统开发全攻略,从点餐到结账一站式搞定!

本文详细介绍了基于SpringBoot+Vue的火锅店管理系统开发全流程。系统核心功能包括:1)多人就餐场景管理,实现桌位状态流转、订单合并和库存实时更新;2)菜品管理支持锅底类型、库存预警和沽清提醒;3)会员体系包含积分兑换和储值优惠。技术栈采用SpringBoot+Vue前后端分离架构,配合Redis缓存和WebSocket实时通信。数据库设计重点优化了桌位表、菜品表和订单表结构,并提供了复杂业务查询示例。文章还展示了扫码点餐流程的关键代码实现,包括桌位状态验证、订单生成和库存扣减的完整事务处理。

790

UniApp微信小程序测试全攻略:从模拟器到真机的完整质量保障

在跨端应用开发中,测试是保障产品质量的关键环节,它贯穿于从编码到上线的整个生命周期。其核心原理在于通过模拟真实运行环境,验证应用在不同平台、设备和网络条件下的功能、性能与兼容性。对于采用Vue.js生态的UniApp开发者而言,掌握高效的测试方法具有重要技术价值,它能将开发成果从“可运行代码”转化为“稳定可靠的产品”,直接影响用户体验和项目成功率。测试实践通常覆盖模拟器快速调试、小程序端真机验证以及原生App端兼容性测试等多个应用场景。其中,**真机测试**是暴露环境差异问题的最终手段,而**远程调试**则

weixin_30699955的博客 519
上一篇: Fastify大模型接口优化实战(百万QPS架构背后的秘密)
下一篇: 为什么顶尖公司都在用ECharts做智能图表?真相令人震惊
BytePerch
博客等级 码龄1年 164粉丝 1971原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值