当前位置: 首页 > news >正文

#跟着若城学鸿蒙# web篇-初探

前言

先看下官方介绍,这里总结了比较重要的几点
Web组件基础:加载与渲染网页全面解析
Web组件是现代应用开发中不可或缺的重要元素,它允许开发者在原生应用中无缝集成Web内容。本文将全面介绍Web组件的基本功能,包括多种内容加载方式、动态更新机制以及页面加载生命周期的完整处理流程。

Web组件核心功能概述
Web组件作为连接原生应用与Web内容的桥梁,主要提供三大核心功能:

1.多源内容加载:支持网络页面、本地文件和HTML富文本数据1
2.动态内容更新:通过编程接口实时更新显示内容
3.生命周期管理:完整监控页面加载过程各阶段状态
官方文档的介绍中,
ArkWeb基于谷歌Chromium内核开发,使用的Chromium版本为M114。提供了强大的网页渲染能力和丰富的控制接口。

实战

加载网络页面

网络页面加载是最常见的场景,需要配置网络访问权限:

"requestPermissions": [{"name": "ohos.permission.INTERNET"}
]

在页面中


import { webview } from '@kit.ArkWeb';@Entry
@Component
struct WebComponent {controller: webview.WebviewController = new webview.WebviewController();build() {Column() {Web({ src: 'https://developer.huawei.com/consumer/cn/develop/', controller: this.controller })}}
}

这里有两点需要注意:src的值可以是超链接地址,地址不加http或者 https 时会默认加上 https。也可以是 Resource 值,用来加载本地数据。

动态更新URL需要使用loadUrl()方法:

Button('跳转页面').onClick(() => {try {this.controller.loadUrl('https://developer.huawei.com/consumer/cn/develop/');} catch (error) {console.error(`加载失败: ${error.message}`);}})

加载本地页面

本地页面需放置在rawfile目录下,支持两种加载方式:
使用资源引用符:

Web({ src: $rawfile("local.html"), controller: this.controller })

或者
使用沙箱路径:

let url = 'file://' + GlobalContext.getContext().getObject("filesDir") + '/index.html';
Web({ src: url, controller: this.controller }).fileAccess(true)

当然也可以直接加载 html 字符串

Button('加载HTML').onClick(() => {this.controller.loadData("<html><body>自定义内容</body></html>","text/html","UTF-8");})

也可以直接使用 src 属性

htmlStr: string = "data:text/html,<html><body>直接内容</body></html>";Web({ src: this.htmlStr, controller: this.controller })

生命周期

与其说是生命周期,不如说是加载网页的各种事件回调
这里放张图

img

除了这些之外,还有其他的事件:

aboutToAppear函数:在创建自定义组件的新实例后,在执行其build函数前执行。一般建议在此设置WebDebug调试模式setWebDebuggingAccess、设置Web内核自定义协议URL的跨域请求与fetch请求的权限customizeSchemes、设置Cookie(configCookie)等。

onControllerAttached事件:当Controller成功绑定到Web组件时触发该回调,且禁止在该事件回调前调用Web组件相关的接口,否则会抛出js-error异常。推荐在此事件中注入JS对象registerJavaScriptProxy、设置自定义用户代理setCustomUserAgent,可以在回调中使用loadUrl,getWebId等操作网页不相关的接口。但因该回调调用时网页还未加载,因此无法在回调中使用有关操作网页的接口,例如zoomIn、zoomOut等。

onLoadIntercept事件:当Web组件加载url之前触发该回调,用于判断是否阻止此次访问。默认允许加载。

onOverrideUrlLoading事件:当URL将要加载到当前Web中时,让宿主应用程序有机会获得控制权,回调函数返回true将导致当前Web中止加载URL,而返回false则会导致Web继续照常加载URL。onLoadIntercept接口和onOverrideUrlLoading接口行为不一致,触发时机也不同,所以在应用场景上存在一定区别。主要是在LoadUrl和iframe(HTML标签,表示HTML内联框架元素,用于将另一个页面嵌入到当前页面中)加载时,onLoadIntercept事件会正常回调到,但onOverrideUrlLoading事件在LoadUrl加载时不会触发,在iframe加载HTTP(s)协议或about:blank时也不会触发。详细介绍请见onLoadIntercept和onOverrideUrlLoading的说明。

onInterceptRequest事件:当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。

onPageBegin事件:网页开始加载时触发该回调,且只在主frame(表示一个HTML元素,用于展示HTML页面的HTML元素)触发。如果是iframe或者frameset(用于包含frame的HTML标签)的内容加载时则不会触发此回调。多frame页面有可能同时开始加载,即使主frame已经加载结束,子frame也有可能才开始或者继续加载中。同一页面导航(片段、历史状态等)或者在提交前失败、被取消的导航等也不会触发该回调。

onProgressChange事件:告知开发者当前页面加载的进度。多frame页面或者子frame有可能还在继续加载而主frame可能已经加载结束,所以在onPageEnd事件后依然有可能收到该事件。

onPageEnd事件:网页加载完成时触发该回调,且只在主frame触发。多frame页面有可能同时开始加载,即使主frame已经加载结束,子frame也有可能才开始或者继续加载中。同一页面导航(片段、历史状态等)或者在提交前失败、被取消的导航等也不会触发该回调。推荐在此回调中执行JavaScript脚本loadUrl等。需要注意的是收到该回调并不能保证Web绘制的下一帧将反映此时DOM的状态。

onPageVisible事件:Web回调事件。渲染流程中当HTTP响应的主体开始加载,新页面即将可见时触发该回调。此时文档加载还处于早期,因此链接的资源比如在线CSS、在线图片等可能尚不可用。

onRenderExited事件:应用渲染进程异常退出时触发该回调,可以在此回调中进行系统资源的释放、数据的保存等操作。如果应用希望异常恢复,需要调用loadUrl接口重新加载页面。详细用法参考应用如何避免Web组件渲染子进程异常退出导致的页面卡死问题。

onDisAppear事件:组件卸载消失时触发此回调。该事件为通用事件,指组件从组件树上卸载时触发的事件。

下一章,我们就使用这些事件来完成某些操作

相关文章:

#跟着若城学鸿蒙# web篇-初探

前言 先看下官方介绍&#xff0c;这里总结了比较重要的几点Web组件基础&#xff1a;加载与渲染网页全面解析Web组件是现代应用开发中不可或缺的重要元素&#xff0c;它允许开发者在原生应用中无缝集成Web内容。本文将全面介绍Web组件的基本功能&#xff0c;包括多种内容加载方…...

Top-p采样:解锁语言模型的创意之门

Top - p采样 是什么&#xff1a;核采样&#xff1a;排序&#xff0c;累计到0.7&#xff0c;随机选择 在自然语言生成和大规模语言模型推理中&#xff0c;Top - p采样&#xff08;又叫核采样&#xff0c;Nucleus Sampling&#xff09;是一种基于累积概率的采样策略。 Top - p介…...

周赛好题推荐

这周周赛很有质量的&#xff0c;上了一个很有意思的数学题目&#xff0c;推了半天..... 给定一个区间[l,r]&#xff0c;求出区间内所有满足x mod 2^i !k的所有正整数&#xff08;最后全部进行异或&#xff09; 首先我们不妨先算出[l,r]区间所有数字的异或&#xff0c;然后在算…...

【RabbitMQ】实现RPC通信的完整指南

文章目录 RPC 通信创建相关队列客户端代码声明队列发送请求接收响应完整代码 服务端代码设置同时只能获取一个消息接收消息完整代码 运行程序启动客户端启动服务端 RPC 通信 RPC (Remote Procedure Call), 即远过程调用。它是一种通过网络从远程计算机上请求服务&#xff0c;而…...

CK3588下安装linuxdeployqt qt6 arm64

参考资料&#xff1a; Linux —— linuxdeployqt源码编译与打包&#xff08;含出错解决&#xff09; linux cp指令报错&#xff1a;cp: -r not specified&#xff1b; cp: omitting directory ‘xxx‘&#xff08;需要加-r递归拷贝&#xff09; CMake Error at /usr/lib/x86_64…...

滑动窗口之二(优先队列)

原本滑动窗口的板子用的是数组和双指针模拟&#xff0c;我嫌麻烦还不好懂找了双端队列。但其实还是不太好使&#xff0c;比如今天的这道题就处理起来很麻烦。但是如果用优先队列的话就可以一直保证整个窗口是有序的&#xff0c;只需判断一下是否在窗口内即可。但是&#xff01;…...

小刚说C语言刷题—1088求两个数M和N的最大公约数

1.题目描述 求两个正整数 M 和 N 的最大公约数(M&#xff0c;N都在长整型范围内&#xff09; .输入 输入一行&#xff0c;包括两个正整数。 输出 输出只有一行&#xff0c;包括1个正整数。 样例 输入 45 60 输出 15 2.参考代码(C语言版) #include <stdio.h> …...

pytorch训练可视化工具---TensorBoard

一、目的&#xff1a;为什么使用 TensorBoard 调控模型 使用 TensorBoard 可以帮我们&#xff1a; 实时查看 loss / acc 曲线 → 判断是否过拟合、欠拟合&#xff1b; 对比不同模型或超参数的效果&#xff1b; 可视化模型结构 → 帮助调试模型设计&#xff1b; 查看权重/梯…...

丝杆升降机限位失灵深度剖析:从故障机理到智能监测方案

在工业自动化与精密机械传动领域&#xff0c;丝杆升降机凭借高精度、大推力的特性&#xff0c;成为产线设备的核心执行部件。然而&#xff0c;限位系统的可靠性直接决定设备安全运行与生产连续性。本文将从技术原理、故障诊断到智能监测方案&#xff0c;系统性解析丝杆升降机限…...

系统集成项目管理工程师学习笔记

第九章 项目管理概论 1、项目基本要素 项目基础 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目具有临时性、独特性、渐进明细的特点。项目的“临时性”是指项目只有明确的起点和终点。“临时性”并一定意味着项目的持续时间短。 项目可宣告结束的情况&…...

RDD的自定义分区器-案例

对电商订单数据进行处理&#xff0c;订单数据包含用户 ID 和订单金额&#xff0c;不同地区的用户有不同的 ID 范围。我们会按照地区对订单数据进行分区&#xff0c;这样做能让相同地区的订单数据处于同一分区&#xff0c;便于后续按地区进行统计金额分析。 订单数据如下&#x…...

牛客网NC231954:斐波那契数列 (简单的数列问题)

牛客网NC231954:斐波那契数列 (简单的数列问题&#xff09; 题目描述 本题要求我们计算斐波那契数列的第n项&#xff0c;斐波那契数列定义如下&#xff1a; f(1) 1f(2) 1f(n) f(n-1) f(n-2)&#xff0c;当n ≥ 3 给定整数n&#xff0c;求f(n)的值。 算法思路 斐波那契…...

中国近代史3

辛亥革命 1.同盟会&#xff1a;建立 1905年&#xff0c;东京&#xff0c;第一个全国性的资产阶级革命政党&#xff1b;同盟会纲领“驱除鞑虏&#xff0c;恢复中华&#xff0c;建立民国&#xff0c;平均地权” “民族”“民生”“民权” 2.武昌起义 ①爆发&#xff1a;1911.10…...

晶振的核心参数

目录 1.简介 2.晶振核心参数详解 3.晶振的抖动&#xff08;jitter&#xff09; 4.抖动的三种测量方式 5.抖动的其他资料 1.简介 再看一些晶振的手册时&#xff0c;经常遇到一些类似或相近的参数&#xff0c;今天借此机会&#xff0c;做一个小姐。 2.晶振核心参数详解 1…...

北京孙河傲云源墅:限量典藏的主城墅居臻品

在限墅令的背景下&#xff0c;北京主城的墅居产品日益稀缺&#xff0c;而傲云源墅作为孙河墅区的杰出之作&#xff0c;凭借其独特的价值&#xff0c;成为了众多高端置业者的理想选择。 傲云源墅所处的孙河地区&#xff0c;是北京公认的高价值板块。其地位在 2025 年孙河 2902 …...

驱动-Linux定时-timer_list

了解内核定时相关基础知识 文章目录 简要介绍timer_list 特点API 函数实验测试程序 - timer_mod.c编译文件-Makefile实验验证 注意事项总结 简要介绍 硬件为内核提供了一个系统定时器来计算流逝的时间&#xff08;即基于未来时间点的计时方式&#xff0c; 以当前时刻为计时开始…...

从理论到实战:模糊逻辑算法的深度解析与应用实践

从理论到实战&#xff1a;模糊逻辑算法的深度解析与应用实践 一、模糊逻辑的核心概念与数学基础 模糊逻辑&#xff08;Fuzzy Logic&#xff09;是一种处理不确定性的数学工具&#xff0c;其核心思想是将传统布尔逻辑的“非黑即白”扩展为连续的隶属度函数。例如&#xff0c;在…...

涨薪技术|0到1学会性能测试第65课-SQL捕获阻塞事件

前面的推文我们掌握了JVM调优技术。今天给大家分享MS SQL数据库监控与调优技术。后续文章都会系统分享干货&#xff0c;带大家从0到1学会性能测试。 01SQL捕获阻塞事件 在SQL Server 2005之前的版本&#xff0c;分析哪些进程产生阻塞以及哪些进程被阻塞&#xff0c;都需要使用脚…...

SQL实战:06交叉日期打折问题求解

文章目录 概述题目&#xff1a;交叉打折问题求解题解第一步&#xff1a;使用滑动窗口统计当前活动前的最大结束日期步骤二&#xff1a;拆分出交叉部分步骤三&#xff1a;计算每次活动的持续天数步骤四&#xff1a;分组统计最终结果完整SQL 概述 最近刷题时遇到一些比较有意思的…...

Linux云计算训练营笔记day09(MySQL数据库)

Linux云计算训练营笔记day09&#xff08;MySQL数据库&#xff09; 目录 Linux云计算训练营笔记day09&#xff08;MySQL数据库&#xff09;外键约束数据的导入和导出数据的导出数据的导入 DQL 数据查询语言查指定字段查所有字段where 过滤条件and 和 orin 和 not inbetween...an…...

docker 学习记录

docker pull nginx docker 将本地nginx快照保存到当前文件夹下 docker save -o nginx.tar nginx:latestdocker 将本地nginx 加载 docker load -i nginx.tar docker运行nginx在80端口 docker run --name dnginx -p 80:80 -d nginxredis启动 docker run --name mr -p 6379:6379 -…...

Kind方式部署k8s单节点集群并创建nginx服务对外访问

资源要求 请准备好doker环境&#xff0c;尽量用比较新的版本。我的docker环境如下 docker 环境&#xff1a; Docker version 20.10.21, build 20.10.21-0ubuntu1~18.04.3 安装kind kind表现上就是一个二进制程序&#xff0c;下载对应版本并增加执行权限即可&#xff1a; cu…...

Da14531蓝牙特征值1读没有回调解决

一. 我们调试中发现user_peripheral.c中的回调&#xff0c;一直都没有回调。&#xff08;大家可以通过打印去排查&#xff09; void user_catch_rest_hndl(ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id) { //此处省…...

journal of Electronic Imaging(JEI)投稿咨询

研究生投的第二篇论文-CV方向&#xff0c;由于太菜了&#xff0c;到处被拒&#xff0c;最后选择了Journal of Electronic Imaging(JEI) 审稿了三个月&#xff0c;最近突然变了状态&#xff0c;之前催稿说才一个审稿人&#xff0c;这样子是不是要被拒了&#xff0c;有没有知道的…...

upload-labs靶场通关详解:第6-9关

目录 第六关&#xff1a;大小写绕过 一、分析源代码 二、解题思路 三、解题步骤 第七关&#xff1a;空格绕过 一、分析源代码 二、解题思路 三、解题步骤 第八关&#xff1a;点号绕过 一、分析源代码 二、解题思路 三、解题步骤 第九关&#xff1a;::$DATA字符串绕…...

算法图表总结:查找、排序与递归(含 Mermaid 图示)

算法图表总结&#xff1a;查找、排序与递归&#xff08;含 Mermaid 图示&#xff09; 分类标签&#xff1a;算法、数据结构、Mermaid、技术图表 关键词&#xff1a; 算法可视化、Mermaid 图表、数据结构、二分查找、快速排序、递归树 摘要&#xff1a; 本文通过 Mermaid 图表…...

在文件检索方面doris和elasticsearch的区别

apache Doris 与 Elasticsearch 在文件检索领域的差异源于技术架构与定位目标的本质区别,以下从核心维度对比分析二者的技术特性: 一、 ‌架构设计与定位差异‌ ‌维度‌‌Apache Doris‌‌Elasticsearch‌‌核心架构‌分布式 MPP 列式分析引擎,面向 OLAP 优化分布式倒排索…...

linux系统服务

Linux 系统服务&#xff08;System Services&#xff09; 是在后台持续运行的进程&#xff08;守护进程&#xff0c;即 daemon&#xff09;&#xff0c;用于提供核心功能或支持其他应用程序&#xff08;如网络管理、日志记录、定时任务等&#xff09;。它们通常在系统启动时自动…...

大语言模型三大演进方向:记忆增强、工具集成与多模态突破

目录 一、方向演进:从通用模型到记忆增强系统 1.1 技术瓶颈分析 1.2 记忆增强技术路径 1.3 企业级应用架构 二、工具调用:从语言理解到行动执行 2.1 工具调用协议演进 2.2 工具编排范式比较 三、多模态突破:跨模态统一建模 3.1 多模态架构演进 3.2 医学多模态应用…...

嵌入式学习笔记DAY21(双向链表、Makefile)

一、双向链表 1.概念 双向链表&#xff08;Doubly Linked List&#xff09; 是一种链式数据结构&#xff0c;每个节点包含 两个指针&#xff08;前驱指针 prev 和后继指针 next&#xff09;&#xff0c;分别指向 前一个节点 和 后一个节点&#xff0c;形成双向连接。 头节点&…...

Vue 学习随笔系列二十三 -- el-date-picker 组件

el-date-picker 组件 文章目录 el-date-picker 组件el-date-picker 只有某些日期可选 el-date-picker 只有某些日期可选 <template><div><el-form ref"form" size"mini":model"form" :rules"rules"label-width"8…...

IEEE出版|连续多年稳定检索|第三届信号处理与智能计算国际学术会议(SPIC2025)

【重要信息】 会议官网&#xff1a; www.ic-spic.com 会议日期&#xff1a;2025年11月28-30日 会议地点&#xff1a;中国 广州 截稿日期&#xff1a;2025年11月10日 接受或拒绝通知日期&#xff1a;提交后7个工作日 【征稿主题】 人工智能和机器学习 计算机系统和架构 …...

用Python代码绘制动态3D爱心效果

引言 介绍Python在创意编程中的应用&#xff0c;特别是如何通过简单的代码实现视觉上的美感。引出本文将分享的爱心代码&#xff0c;并简要说明其实现原理。 爱心代码的基本实现 展示一个简单的Python代码示例&#xff0c;使用字符画的方式在控制台中绘制一个爱心图案。 pr…...

牛客网刷题:NC208813求逆序数

牛客网刷题&#xff1a;NC208813求逆序数 问题描述 在排序和数据结构分析中&#xff0c;逆序数是一个重要的概念。对于一个数列来说&#xff0c;如果一对数的前后位置与大小顺序相反&#xff08;即前面的数大于后面的数&#xff09;&#xff0c;那么它们就称为一个逆序对。一个…...

Day 21 训练

Day 21 训练 常见的降维算法数据预处理无监督降维PCA&#xff08;主成分分析&#xff09;主成分分析&#xff08;PCA&#xff09;作用和优势应用场景t-SNE&#xff08;t-分布随机邻域嵌入&#xff09;t-SNE&#xff08;t-分布随机邻域嵌入&#xff09;为什么 t-SNE 特别适用于高…...

1267, “Illegal mix of collations (latin1_swedish_ci,IMPLICIT

python 执行数据迁移报错 mysql : 1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT 解决方法&#xff1a; 替换TABLE 后面的表名为你自己的表名&#xff0c;mysql 黑窗口执行。 以下是我的表名&#xff0c;仅作参考 ALTER TABLE book CONVERT TO CHARACTE…...

【C#】Thread.Join()、异步等待和直接join

JogThread.Join() 是 .NET 中 System.Threading.Thread 类的一个方法&#xff0c;用来让当前调用线程暂停执行&#xff0c;直到目标线程&#xff08;这里是 JogThread&#xff09;终止为止。以下是它的核心语义和你在 UI 代码里需要注意的几个相关知识点。 1. Thread.Join() 的…...

Malformed input or input contains unmappable characters解决

JDK 17 文件上传编码异常解决方案技术文档 1. 问题背景 在 JDK 17 环境下&#xff0c;文件上传过程中可能抛出 Malformed input or input contains unmappable characters 错误。此问题通常由以下原因触发&#xff1a; 文件路径/名称包含非 ASCII 字符&#xff08;如中文、日…...

PYTHON训练营DAY26

一、函数 &#xff08;一&#xff09;不带参数的函数 # 定义一个简单的问候函数 def greet():"""打印一句问候语。"""message "大家好&#xff01;欢迎学习Python函数定义&#xff01;"print(message)greet()&#xff08;二&#x…...

奇变偶不变,符号看象限

三角函数诱导公式口诀详解&#xff1a;奇变偶不变&#xff0c;符号看象限 口诀解析 1. 口诀含义 奇变偶不变&#xff1a; 奇/偶&#xff1a;指角度加减的是π/2&#xff08;90&#xff09;的奇数倍还是偶数倍 奇数倍&#xff08;如π/2, 3π/2&#xff09;→ 函数名改变&…...

基于SpringBoot的家政服务系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

Makefile 在 Go 项目中的实践

在 Go 项目中&#xff0c;Makefile 是一个强大的工具&#xff0c;用于自动化构建、测试和部署流程。它不仅能减少重复命令输入&#xff0c;还能确保团队开发环境的一致性。本文以 CoreDNS&#xff08;一个高性能 DNS 服务器&#xff09;的 Makefile 为例&#xff0c;解析其设计…...

关闭所有Nginx进程

要关闭所有Nginx进程&#xff0c;可以使用以下命令。这些命令适用于不同的操作系统。 在Linux/Unix系统中 在Linux或Unix系统中&#xff0c;可以使用killall命令来关闭所有Nginx进程。 sudo killall nginx 在Windows系统中 在Windows系统中&#xff0c;可以使用taskkill命…...

开源模型应用落地-模型上下文协议(MCP)-Resources-资源的使用逻辑

一、前言 在大型语言模型与外部世界交互的探索中&#xff0c;如何高效、灵活地接入多样化数据始终是核心命题。MCP&#xff08;Model Context Protocol&#xff09;协议中的Resources 机制&#xff0c;正是为这一问题提供了优雅的解决方案。通过URI&#xff08;统一资源标识符&…...

如何判断一个网站后端是用什么语言写的

判断一个网站的后端是用什么语言写的&#xff0c;可以从以下几个方面入手&#xff1a; 一、通过响应头&#xff08;HTTP Response Headers&#xff09; 使用浏览器开发者工具或工具如 curl 查看网站返回的响应头信息&#xff0c;有时可以看到蛛丝马迹&#xff1a; 示例&#…...

CertiK助力以太坊扩展战略,解析Pectra升级的变革与挑战

近期&#xff0c;美国知名金融科技媒体Benzinga发表文章&#xff0c;深入探讨以太坊Pectra升级的变革性影响&#xff0c;并特别引用了CertiK对潜在风险的权威分析&#xff0c;特别是EIP-7702引入的全新信任模型变化。此次升级不仅重新定义了EOA与智能合约的交互方式&#xff0c…...

【C++】Module CPP:模块化编程 Demo

一、C20 模块简介 C20 模块是 C 语言发展史上的重要革新&#xff0c;它从根本上改变了代码组织方式。相比传统的头文件&#xff08;#include&#xff09;机制&#xff0c;模块具有以下核心优势&#xff1a; 隔离编译&#xff1a;模块独立编译&#xff0c;避免重复编译头文件符…...

mvc-service引入

什么是业务层 1&#xff09;Model1&#xff08;JSP&#xff09;和Model2&#xff08;模糊的mvc&#xff09;: MVC&#xff1a;Model(模型)&#xff0c;View(视图)&#xff0c;Controller&#xff08;控制器&#xff09; 视图层&#xff1a;用于数据展示以及用户交互的界…...

Linux线程互斥锁

1. 什么是互斥锁&#xff08;Mutex&#xff09;&#xff1f; 互斥锁&#xff08;Mutex&#xff0c;Mutual Exclusion&#xff09; 是一种用于多线程编程的同步机制&#xff0c;用于保护共享资源&#xff08;如变量、内存、文件等&#xff09;&#xff0c;确保在同一时刻只有一…...

PINN Poisson 1d

&#x1f4cc; 一、问题定义 我们要求解的微分方程是 d 2 u d x 2 f ( x ) \begin{equation} \frac{d^2 u}{d x^2} f(x) \end{equation} dx2d2u​f(x)​​ 其中: f ( x ) − 0.49 s i n ( 0.7 x ) − 2.25 c o s ( 1.5 x ) f(x) -0.49sin(0.7x) - 2.25cos(1.5x) f(x)−…...