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

IntelliJ 配置(二)配置相关类库(2)LineMarkerProvider

一、介绍

LineMarkerProvider 是 IntelliJ 平台插件开发中的一个接口,它的作用是在编辑器左侧的“行标记区域”(就是代码行号左边那一栏)添加各种图标、标记或导航链接。比如Java 类中看到的:

  • 小绿色三角形(可以点击运行 main 方法)

  • 方法重写的箭头图标(点击能跳到父类方法)

  • 自定义的注解标识

  • 各种插件加的导航小图标

这些都是通过 LineMarkerProvider 或其变种(如 RelatedItemLineMarkerProvider)来实现的。

二、使用方法

实现 LineMarkerProvider 接口主要是为了提供行标记的行为。具体步骤如下:

 1、实现 LineMarkerProvider 接口

 创建一个类来实现 LineMarkerProvider 接口,并在其中定义如何生成和处理行标记。

package com.example;import com.intellij.codeInsight.daemon.LineMarkerProvider;
import com.intellij.codeInsight.daemon.LineMarkerInfo;
import com.intellij.codeInsight.daemon.impl.LineMarkerRenderer;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;import java.util.List;public class MyLineMarkerProvider implements LineMarkerProvider {@Overridepublic List<LineMarkerInfo<?>> getLineMarkerInfo(@NotNull PsiElement element) {// 判断这个元素是否是需要标记的元素if (element instanceof MyTargetElement) {// 创建行标记return List.of(createLineMarkerInfo(element));}return List.of();}private LineMarkerInfo<PsiElement> createLineMarkerInfo(PsiElement element) {// 在这里你可以自定义行标记的图标和行为return new LineMarkerInfo<>(element, element.getTextRange(), MyIcons.MY_ICON, LineMarkerInfo.ColorMode.COLOR_FOR_ITEM, null, null);}
}
2、注册 LineMarkerProvider

 在 plugin.xml 文件中注册该实现类

<idea-plugin><id>com.example.myplugin</id><name>My Plugin</name><description>My custom plugin for IntelliJ IDEA</description><vendor>My Vendor</vendor><extensions defaultExtensionNs="com.intellij"><!-- 注册 LineMarkerProvider --><codeInsight.lineMarkerProvider implementation="com.example.MyLineMarkerProvider"/></extensions>
</idea-plugin>

三、主要接口

LineMarkerProvider有两个接口:

方法名场景适合做的事
getLineMarkerInfo轻量级针对单个元素快速标记(无跳转关系、处理快)
collectSlowLineMarkers重度分析批量处理元素、涉及跳转、关系图、慢速处理等
1、getLineMarkerInfo(PsiElement element)
1.1 用途

这个方法适合用于“轻量级的、单个元素的标记”,比如:

  • 一个特定方法名、类名、字段名出现时加一个图标

  • 处理非常快(不耗时)的判断逻辑

1.2 返回值
  • 返回一个 LineMarkerInfo,表示某个 PsiElement 对应的行加上图标/提示/点击跳转等。

  • 返回 null 表示不加标记。

1.3 LineMarkerInfo

通过 LineMarkerInfo 对象,你可以自定义行标记的外观、行为以及交互方式。

LineMarkerInfo 是 IntelliJ IDEA 中用于描述行标记的核心类。它可以包括多个重要的元素:

  • element:标记的目标元素,通常是一个 PsiElement,即代码的某一部分。
  • textRange:该元素在源代码中的范围。
  • icon:行标记显示的图标(通常是一个 Icon 对象)。
  • colorMode:标记的颜色模式,可以是 COLOR_FOR_ITEM(根据元素颜色来决定颜色)等。
  • navigationHandler:点击图标时执行的操作(可以是打开文件、跳转到某个位置等)。
  • tooltip:当用户悬停在图标上时显示的提示文本。
1.4 demo
@Override
public LineMarkerInfo<?> getLineMarkerInfo(@NotNull PsiElement element) {if (element instanceof PsiMethod method && method.getName().equals("call")) {return new LineMarkerInfo<>(element,element.getTextRange(),AllIcons.Gutter.ImplementedMethod,psi -> "这是 call 方法",(mouseEvent, elt) -> {// 点击行为,比如弹窗、跳转等},GutterIconRenderer.Alignment.RIGHT);}return null;
}
2、collectSlowLineMarkers(List<PsiElement> elements, Collection<LineMarkerInfo> result)
2.1、用途

这个方法是用于“批量、慢速处理”的场景,比如:

  • 遍历整个文件的所有方法,找出所有加了特定注解的方法

  • 多个元素之间有关联,比如导航关系

2.2、使用场景
  • 比如你想实现:点击某个类的图标可以跳转到它的所有实现类

  • 或者在方法上显示它的调用方、被调用者

2.3、demo
@Override
public void collectSlowLineMarkers(@NotNull List<? extends PsiElement> elements,@NotNull Collection<? super LineMarkerInfo<?>> result
) {for (PsiElement element : elements) {if (element instanceof PsiMethod method && method.getName().equals("process")) {result.add(new LineMarkerInfo<>(element,element.getTextRange(),AllIcons.General.Information,psi -> "跳转到处理逻辑",(mouseEvent, elt) -> {// 点击行为,比如跳转到某个 helper 方法},GutterIconRenderer.Alignment.LEFT));}}
}

四、demo

1、简单打标

两个接口我都实现了下,看下效果

package com.test;import com.intellij.codeInsight.daemon.LineMarkerInfo;
import com.intellij.codeInsight.daemon.LineMarkerProvider;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.editor.markup.GutterIconRenderer;
import com.intellij.openapi.util.IconLoader;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiIdentifier;
import com.intellij.psi.PsiMethod;
import groovy.util.logging.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.swing.*;
import java.util.Collection;
import java.util.List;
//provider测试demo
@Slf4j
public class MyTestProvider implements LineMarkerProvider {private static final Logger log = LoggerFactory.getLogger(MyTestProvider.class);@Overridepublic LineMarkerInfo<?> getLineMarkerInfo(@NotNull PsiElement element) {Icon customIcon = IconLoader.getIcon("/icons/Line.svg", MyTestProvider.class);if (element instanceof PsiMethod method && method.getName().contains("User")) {return new LineMarkerInfo<>(element,element.getTextRange(),//AllIcons.Gutter.Unique,customIcon,psi -> "这是wtyy target method",(mouseEvent, elt) -> {// 点击行为},GutterIconRenderer.Alignment.RIGHT);}return null;}@Overridepublic void collectSlowLineMarkers(@NotNull List<? extends PsiElement> elements, @NotNull Collection<? super LineMarkerInfo<?>> result) {for (PsiElement element : elements) {if (element instanceof PsiIdentifier && element.getParent() instanceof PsiMethod) {PsiMethod method = (PsiMethod) element.getParent();Icon customIcon = IconLoader.getIcon("/icons/pluginIcon.svg", MyTestProvider.class);if (method.getName().startsWith("insert") || method.getName().startsWith("update")) {result.add(new LineMarkerInfo<>(element,element.getTextRange(),customIcon,psi -> "提示信息",null,GutterIconRenderer.Alignment.LEFT));}}}}
}
  <extensions defaultExtensionNs="com.intellij"><!-- 注册 LineMarkerProvider --><codeInsight.lineMarkerProvider language="JAVA" implementationClass="com.test.MyTestProvider"/></extensions>

启动测试:打开一个java文件,可以看到打上了自定义的标签

2、打标加上点击行为

相关文章:

IntelliJ 配置(二)配置相关类库(2)LineMarkerProvider

一、介绍 LineMarkerProvider 是 IntelliJ 平台插件开发中的一个接口&#xff0c;它的作用是在编辑器左侧的“行标记区域”&#xff08;就是代码行号左边那一栏&#xff09;添加各种图标、标记或导航链接。比如Java 类中看到的&#xff1a; 小绿色三角形&#xff08;可以点击运…...

红宝书第四十二讲:Angular核心特性精讲:依赖注入 RxJS整合

红宝书第四十二讲&#xff1a;Angular核心特性精讲&#xff1a;依赖注入 & RxJS整合 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、依赖注入&#xff08;Dependency Injection&#xff09;&#xff1a;快…...

AD917X系列JESD204B MODE7使用

MODE7特殊在F8&#xff0c;M4使用2个复数通道 CH0_NCO10MHz CH1_NCO30MHZ DP_NCO50MHz DDS1偏移20MHz DDS2偏移40MHz...

软考高级系统架构设计师-第11章 系统架构设计

【本章学习建议】 根据考试大纲&#xff0c;本章不仅考查系统架构设计师单选题&#xff0c;预计考12分左右&#xff0c;而且案例分析和论文写作也是必考&#xff0c;对应第二版教材第7章&#xff0c;属于重点学习的章节。 软考高级系统架构设计师VIP课程https://edu.csdn.net/…...

中和农信的“三农”服务密码:科技+标准化助力乡村振兴

作为中国农村市场最大的专注服务农村小微客户的“三农”综合服务机构&#xff0c;中和农信凭借多年积累的农村服务经验&#xff0c;成功从单一小额信贷机构转型为覆盖金融、生产、生活及生态服务的综合型“三农”服务平台。近期&#xff0c;中和农信在由中保保险资产登记交易系…...

【Redis】布隆过滤器应对缓存穿透的go调用实现

布隆过滤器 https://pkg.go.dev/github.com/bits-and-blooms/bloom/v3 作用&#xff1a; 判断一个元素是不是在集合中 工作原理&#xff1a; 一个位数组&#xff08;bit array&#xff09;&#xff0c;初始全为0。多个哈希函数&#xff0c;运算输入&#xff0c;从而映射到位数…...

MyBatis-Plus笔记(下)

注解 tablename注解 - 描述&#xff1a;表名注解&#xff0c;标识实体类对应的表 - 使用位置&#xff1a;实体类 代码举例&#xff1a; TableName//可以不加&#xff0c;使用实体类的名字作为表名&#xff01;忽略大小写 //BaseMapper->User实体类-》实体类名-》表名数据…...

【项目管理】第14章 项目沟通管理-- 知识点整理

项目管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 第6章 项目管理概论 4分第13章 项目资源管理 3-4分第7章 项目…...

3个关键数据解密:首航上市如何重构ebay电商新能源供应链?

3个关键数据解密&#xff1a;首航上市如何重构eBay电商新能源供应链&#xff1f; 在跨境电商圈&#xff0c;一个新玩家的崛起往往意味着新的格局变动。2024年&#xff0c;伴随一家名为“首航”的新能源企业在港股成功上市&#xff0c;整个eBay类目的供应链悄然掀起新一轮洗牌。…...

《华为云Node.js部署:从开发环境到生产上线的完整指南》

目录 引言第一步&#xff1a; 重置密码第二步&#xff1a;连接到服务器第三步&#xff1a;安装必要软件第四步&#xff1a;创建项目目录第五步&#xff1a;将代码上传到服务器1、安装 FileZilla2、打开FileZilla&#xff0c;连接到您的服务器&#xff1a;3、连接后&#xff0c;…...

【网络原理】TCP/IP协议五层模型

目录 一. 协议的分层 二. OSI七层网络协议 三. TCP/IP五层网络协议 四. 网络设备所在分层 五. 封装 六. 分用 七. 传输中的封装和分用 八. 数据单位术语 一. 协议的分层 常见的分层为两种OSI七层模型和TCP/IP五层模型 为什么要协议分层&#xff1f; 在网络通信中&…...

Asp.Net Core学习随笔

学习自BLBL杨中科老师 依赖注入(Dependency Injection) 依赖注入是实现控制反转(Inversion Of Control 即IOC)的一种方式(还有一种叫服务定位器的实现,但是不如依赖注入好用),软件开发中实现解耦常用的方式. 比如吃饭 ​1. 传统写法&#xff08;没有DI&#xff0c;紧耦合&a…...

基于PHP的酒店网上订房系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 酒店服务是旅游行业的一个重要组成部分&#xff0c;它的作用已经从过去的单一的住宿、结算帐务向全面、高水平的服务型酒店转变。酒店的服务工作贯穿于整个酒店的市场营销、预定、入住、退房、结账等环节&#xff0c;酒店要提高整体工作水平&#xff0c;简化工作程序&…...

《MySQL从入门到精通》

文章目录 《MySQL从入门到精通》1. 基础-SQL通用语法及分类2. 基础-SQL-DDL-数据库操作3. 基础-SQL-DDL-表操作-创建&查询4. 基础-SQL-DDL-数据类型及案例4.1 数值类型4.2 字符串类型4.3 时间和日期类型 5. 基础-SQL-DDL-表操作-修改&删除5.1 DDL-表操作-修改5.2 DDL-表…...

MySQL聚合查询

聚合查询 group by...

生信初学者教程(三十四):文章的方法

文章目录 介绍数据收集和整理数据整合差异基因分析功能富集分析免疫浸润分析候选标记物识别诊断ROC曲线单细胞分析统计方法介绍 在数据分析进行的同时,我们可以逐步撰写方法部分,确保其与结果紧密相连。一旦结果部分完成,方法部分应根据结果的逻辑顺序进行分类和组织。在描…...

算力云平台部署—SadTalker的AI数字人视频

选择算力 部署选择 选择镜像 机器管理 控制台 通过平台工具进入服务器 认识管理系统 打开命令行 进入目录 stable-diffusion-webui# cd 增加执行权限 chmod x ./webui.sh 运行命令 bash ./webui.sh sudo apt install -y python3 python3-venv git 安装软件 Creating the …...

iPhone相册导出到电脑的完整指南

iPhone相册导出到电脑的完整指南 本文介绍通过数据线连接实现iPhone照片视频传输到电脑的标准操作方法&#xff0c;适用于需要备份移动设备影像资料的用户。 环境准备 使用原装Lightning或USB-C数据线连接设备与电脑需在电脑端安装设备管理工具&#xff08;如克魔助手&#…...

【数据结构】励志大厂版·初阶(复习+刷题):复杂度

前引&#xff1a;从此篇文章开始&#xff0c;小编带给大家的是数据结构初阶的刷题讲解 &#xff0c;此类文章将简略的包含相关知识&#xff0c;详细的思路拆分讲解&#xff0c;分析每一题的难点、易错点&#xff0c;看见题目如何分析&#xff0c;以上就是小编预备的内容&#x…...

Nginx底层架构(非常清晰)

目录 前言&#xff1a; 场景带入&#xff1a; HTTP服务器是什么&#xff1f; 反向代理是什么&#xff1f; 模块化网关能力&#xff1a; 1.配置能力&#xff1a; 2.单线程&#xff1a; 3.多worker进程 4.共享内存&#xff1a; 5.proxy cache 6.master进程 最后&…...

Golang|Channel 相关用法理解

文章目录 用 channel 作为并发小容器channel 的遍历channel 导致的死锁问题用 channel 传递信号用 channel 并行处理文件用channel 限制接口的并发请求量用 channel 限制协程的总数量 用 channel 作为并发小容器 注意这里的 ok 如果为 false&#xff0c;表示此时不仅channel为空…...

智能合约安全审计平台——以太坊虚拟机安全沙箱

目录 以太坊虚拟机安全沙箱 —— 理论、设计与实战1. 引言2. 理论背景与安全原理2.1 以太坊虚拟机(EVM)概述2.2 安全沙箱的基本概念2.3 安全证明与形式化验证3. 系统架构与模块设计3.1 模块功能说明3.2 模块之间的数据流与安全性4. 安全性与密码学考量4.1 密码学保障在沙箱中…...

趣说区块链隐私智能合约Shielder 实现原理

目录 核心理念 Deposit Withdraw Shielder 是 Aleph Zero 上的智能合约,它利用 zk-SNARK 技术实现隐私支付以及与 DeFi 的隐私交互。这与常规区块链的完全透明性形成鲜明对比,常规区块链允许追踪单个用户与链上合约以及其他用户的所有交互。Shielder 通过使第三方链观察者…...

TCPIP详解 卷1协议 五 Internet协议

5.1——Internet协议 IP是TCP/IP协议族中的核心协议。所有TCP、UDP、ICMP和IGMP数据都通过IP数据报传输。IP 提供了一种尽力而为、无连接的数据报交付服务。“尽力而为”的含义是不保证 IP 数据报能成功到达目的地。任何可靠性必须由上层&#xff08;例如TCP&#xff09;提供。…...

基于Oracle ADG通过dblink创建物化视图同步数据到目标库

基于Oracle ADG通过dblink创建物化视图同步数据到目标库 环境说明&#xff1a;源端环境Oracle ADG一主一备&#xff0c;版本11.2.0.4&#xff0c;目标端版本11.2.0.4&#xff0c;测试通过dblink方式在目标库创建物化视图同步ADG备库的数据。 PROD --> STANDBY – > TAR…...

openGauss新特性 | 自动参数化执行计划缓存

目录 自动化参数执行计划缓存简介 SQL参数化及约束条件 一般常量参数化示例 总结 自动化参数执行计划缓存简介 执行计划缓存用于减少执行计划的生成次数。openGauss数据库会缓存之前生成的执行计划&#xff0c;以便在下次执行该SQL时直接使用&#xff0c;可…...

qt中的正则表达式

问题&#xff1a; 1.在文本中把dog替换成cat&#xff0c;但可能会把dog1替换成cat1&#xff0c;如果原本不想替换dog1&#xff0c;就会出现问题 2文本中想获取某种以.txt为结尾的多有文本&#xff0c;普通的不能使用 3如果需要找到在不同的系统中寻找换行符&#xff0c;可以…...

开源项目 | 17款云原生安全相关的扫描和平台类开源工具

“ 随着云计算技术的不断发展&#xff0c;越来越多的企业开始将应用程序和数据存储到云上。然而&#xff0c;云安全问题也随之而来&#xff0c;因此&#xff0c;开源云原生安全工具的需求也越来越大。在本文中&#xff0c;我们将介绍一些流行的开源云原生安全工具&#xff0c;以…...

力扣面试150题—旋转图像和矩阵置零

Day21 题目描述 思路 矩阵转置 在将列反转 1 2 3 4 5 6 7 8 9 转置 1 4 7 2 5 8 3 6 9 反转 7 4 1 8 5 2 9 6 3 class Solution {public void rotate(int[][] matrix) { //分为两步 矩阵转置&#xff0c;将列倒序 int x0; int nmatrix.length; //转…...

ScholarCopilot:“学术副驾驶“

这里写目录标题 引言&#xff1a;学术写作的痛点与 AI 的曙光ScholarCopilot 的核心武器库&#xff1a;智能生成与精准引用智能文本生成&#xff1a;不止于“下一句”智能引用管理&#xff1a;让引用恰到好处 揭秘背后机制&#xff1a;检索与生成的动态协同快速上手&#xff1a…...

Node.js项目开启多进程的2种方案

当node项目只部署一个单进程单实例时,遇到异常发生后程序会崩溃,此时杀掉进程在重启单这段时间会导致服务不能正常使用,这显然会影响用户体验。 所以需要以多进程的模式去部署应用,这样当某一个进程发生异常重启时,此时有其他请求被接受后,其他进程依旧可以对外提供服务…...

论文导读 | 基于GPU的子图匹配算法

摘要 大规模图上的子图匹配在社交网络挖掘&#xff0c;生物信息学&#xff0c;知识图谱等领域具有关键作用。近年来随着以GPU为代表的新硬件的发展&#xff0c;研究人员开始尝试在GPU上实现这一NP难的任务。GPU提供了大量的计算单元和高速的显存带宽&#xff0c;可以显著提升算…...

中天科技旗下的中天智能装备有限公司,在立库方面有哪些优势?

中天科技旗下的中天智能装备有限公司在立库方面优势显著&#xff0c;主要体现在产品与方案、技术研发、项目经验和服务质量管控等多个维度&#xff0c;能够为客户提供全方位、高品质的立库相关服务。 产品与解决方案优势 多种立库解决方案&#xff1a;提供托盘式立库、料箱式立…...

HTML5+CSS前端开发【保姆级教学】+超链接标签

一、引入&#xff1a; Hello&#xff01;&#xff0c;各位编程猿们&#xff01;一个页面可以跳转到其他页面&#xff0c;去访问其他资源&#xff0c;使得我们的文档更加的灵动&#xff0c;那我们如何实现不同页面的跳转呢&#xff1f;本期主要介绍超链接标签 那么什么是超链接…...

【游戏安全】文本校验类风险

文本风险定义: 在游戏中除了动画,声音参与和玩家的交互之外,游戏中的文本也属于和玩家交互中一项重要的元素。由玩家操作触发任何不同于游戏自身逻辑设定,进而破坏游戏平衡的文本内容都可以称之为文本类风险漏洞。(这个定义自己瞎写的…) 文本风险危害(漏洞举例): …...

快速排序及其应用

快速排序及其应用 标准写法改成稳定版本求第k小值O(n)做法快排的另一种写法 标准写法 #include <bits/stdc.h>using namespace std;using ll long long;int a[] {8, 5, 18, 11, 7, 2, 21, 15, 3, 8};void quickSort(int l, int r) {if (l > r) return ; // 元素个数…...

南柯电子|新能源汽车EMC电磁兼容性测试整改:突破行业规范之路

随着新能源汽车产业的蓬勃发展&#xff0c;车辆电子化、智能化程度不断提高&#xff0c;电磁兼容性&#xff08;EMC&#xff09;问题日益凸显。作为衡量汽车电子系统稳定性的关键指标&#xff0c;EMC性能不仅影响车辆功能安全&#xff0c;更关乎道路交通的整体安全性。 一、EM…...

LabVIEW 程序持续优化

LabVIEW 以其独特的图形化编程方式&#xff0c;在工业自动化、测试测量、数据分析等众多领域发挥着关键作用。为了让 LabVIEW 程序始终保持高效、稳定&#xff0c;并契合不断变化的实际需求&#xff0c;持续改进必不可少。下面将从多个关键维度&#xff0c;为大家细致地介绍通用…...

裂缝检测数据集,支持yolo,coco json,pasical voc xml,darknet格式的标注,1673张原始训练集图片,正确识别率99.4%

数据集详情: 裂缝检测数据集,支持yolo,coco json,pasical voc xml,darknet格式的标注,1673张原始训练集图片,正确识别率99.4% 2394总图像 数据集分割 训练集占比 70% 1673图片 有效集20% 477图片 测试集...

Webrtc让浏览器实现无服务器中转的安全私密聊天

私密聊天平台的应用介绍 在当今数字时代&#xff0c;隐私和安全成为人们日益关注的焦点。许多人发现&#xff0c;他们的聊天记录、个人信息甚至行为习惯都可能被第三方平台记录、分析甚至滥用。无论是出于保护个人隐私的需要&#xff0c;还是希望实现真正的点对点直接通信&…...

数据结构-限定性线性表 - 栈与队列

栈和队列是数据结构中非常重要的两种限定性线性表&#xff0c;它们在实际应用中有着广泛的用途。这篇文章将深入讲解栈和队列的概念、抽象数据类型、实现方式、应用场景以及性能分析&#xff0c;并通过代码示例帮助大家更好地理解和实践。 一、栈的概念与抽象数据类型 1.1 栈…...

接口的集成测试步骤

一、集成测试是什么 ‌接口的集成测试‌是指在软件开发过程中&#xff0c;将各个模块或组件按照设计要求组合在一起&#xff0c;并测试它们之间的接口是否能够正确交互和协同工作的过程。集成测试是软件开发中的一个重要阶段&#xff0c;通常在单元测试之后进行&#xff0c;目的…...

Python 实现的运筹优化系统数学建模详解(多目标规划模型)

一、引言 在数学建模的广阔领域中&#xff0c;多目标规划模型占据着极为重要的地位。它致力于在复杂的实际场景里&#xff0c;同时优化多个相互冲突的目标&#xff0c;寻求一组决策变量&#xff0c;让多个目标函数在满足特定约束条件下达到某种平衡。这种模型广泛应用于生产调度…...

AJAX原理与XMLHttpRequest

目录 一、XMLHttpRequest使用步骤 基本语法 步骤 1&#xff1a;创建 XHR 对象 步骤 2&#xff1a;调用 open() 方法 步骤 3&#xff1a;监听 loadend 事件 步骤 4&#xff1a;调用 send() 方法 二、完整示例 1. GET 请求&#xff08;带查询参数&#xff09; 2. POST 请…...

css中的3d使用:深入理解 CSS Perspective 与 Transform-Style

在前端开发的奇妙世界中&#xff0c;CSS 不仅负责页面的布局和样式&#xff0c;还能赋予元素生动的动态效果。要实现引人入胜的 3D 变换&#xff0c;perspective 和 transform-style 这两个属性扮演着至关重要的角色。本文将带您深入了解这两个属性&#xff0c;揭开它们如何协同…...

在 JMeter 中,Active Threads Over Time 是一个非常有用的监听器(Listener)

在 JMeter 中,Active Threads Over Time 是一个非常有用的监听器(Listener),它可以帮助你实时观察测试过程中活跃线程数(并发用户数)的变化趋势,从而分析系统的并发处理能力和负载情况。 1. Active Threads Over Time 的作用 实时监控并发用户数:显示测试过程中活跃线程…...

未来七轴机器人会占据主流?深度解析具身智能方向当前六轴机器人和七轴机器人的区别,七轴力控机器人发展会加快吗?

六轴机器人和七轴机器人在设计、功能和应用场景上存在明显区别。六轴机器人是工业机器人的传统架构&#xff0c;而七轴机器人则在多自由度和灵活性方面进行了增强。 本文将在理解这两者的区别以及为何六轴机器人仍然是市场主流&#xff0c;从多个方面进行深入解读六轴和七轴区…...

spark-SOL简介

Spark-SQL简介 一&#xff0e;Spark-SQL是什么 Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块 二&#xff0e;Hive and SparkSQL SparkSQL 的前身是 Shark&#xff0c;Shark是给熟悉 RDBMS 但又不理解 MapReduce 的技术人员提供的快速上手的工具 …...

【今日三题】经此一役小红所向无敌(模拟) / 连续子数组最大和(动态规划) / 非对称之美(贪心)

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;每日两三题 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 经此一役小红所向无敌(模拟)连续子数组最大和(动态规划)非对称之美(贪心) 经此一役小红所向无敌(模拟) 经此一役小红所向无…...

MYSQL MVCC详解

这里写自定义目录标题 **一、MVCC 解决的核心问题****二、MVCC 的核心实现机制****1. 隐藏字段与版本链****2. Undo Log****3. ReadView&#xff08;一致性视图&#xff09;** **三、MVCC 的可见性判断过程****四、不同隔离级别下的 MVCC 行为****五、MVCC 的优缺点****六、示例…...