图谱之前端关系应用
文章目录
- 图谱之前端关系应用(relation-graph、d3.js、echarts)
- 1. relation-graph
- 应用实例
- 优缺点
- 2. d3.js
- 应用实例
- 优缺点
- 3. echarts
- 应用实例
- 优缺点
- 总结
图谱之前端关系应用(relation-graph、d3.js、echarts)
1. relation-graph
relation-graph
是专门用于展示关系图谱的库。
应用实例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF - 8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Relation Graph Example</title><script src="https://unpkg.com/relation-graph@latest/dist/relation-graph.min.js"></script><style>#graph {width: 800px;height: 600px;}</style>
</head><body><div id="graph"></div><script>const data = {nodes: [{ id: '1', label: 'Node 1' },{ id: '2', label: 'Node 2' },{ id: '3', label: 'Node 3' }],edges: [{ from: '1', to: '2' },{ from: '2', to: '3' },{ from: '1', to: '3' }]};const graph = new RelationGraph('#graph', {data: data,layout: {name: 'forceAtlas2Based'}});</script>
</body></html>
优缺点
- 优点:
- 专注关系图谱:专门为展示关系图谱设计,对节点和边的处理有针对性的优化,能够很好地展示复杂的关系结构。
- 易用性:提供了相对简洁的 API,开发者只需要按照规定的格式准备数据,并调用相应的方法,即可快速实现关系图谱的展示,降低了开发成本。
- 缺点:
- 生态相对较小:相较于一些广泛使用的可视化库,如
d3.js
和echarts
,relation-graph
的用户群体相对较小,这可能导致在遇到问题时,较难在社区中找到相关的解决方案和支持。 - 定制性受限:虽然它提供了一定程度的定制选项,但由于其专注于关系图谱这一特定领域,在一些特殊的可视化需求场景下,其定制性可能无法满足所有需求,相比之下,像
d3.js
这样灵活性较高的库在这方面更具优势。
- 生态相对较小:相较于一些广泛使用的可视化库,如
2. d3.js
d3.js
是一个强大的基于数据操作文档的 JavaScript 库。
应用实例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF - 8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>D3.js Graph Example</title><script src="https://d3js.org/d3.v7.min.js"></script><style>svg {width: 800px;height: 600px;}circle {fill: steelblue;stroke: white;stroke-width: 1px;}line {stroke: gray;stroke-width: 1px;}text {fill: white;font-size: 12px;text-anchor: middle;dominant-baseline: middle;}</style>
</head><body><svg></svg><script>const data = {nodes: [{ id: '1', label: 'Node 1' },{ id: '2', label: 'Node 2' },{ id: '3', label: 'Node 3' }],edges: [{ from: '1', to: '2' },{ from: '2', to: '3' },{ from: '1', to: '3' }]};const svg = d3.select('svg');const width = +svg.attr('width');const height = +svg.attr('height');const simulation = d3.forceSimulation(data.nodes).force('link', d3.forceLink(data.edges).id(d => d.id))).force('charge', d3.forceManyBody()).force('center', d3.forceCenter(width / 2, height / 2));const link = svg.append('g').attr('class', 'links').selectAll('line').data(data.edges).join('line');const node = svg.append('g').attr('class', 'nodes').selectAll('circle').data(data.nodes).join('circle').attr('r', 10).call(d3.drag().on('start', dragStarted).on('drag', dragged).on('end', dragEnded)));node.append('text').text(d => d.label);simulation.on('tick', () => {link.attr('x1', d => d.source.x).attr('y1', d => d.source.y).attr('x2', d => d.target.x).attr('y2', d => d.target.y);node.attr('cx', d => d.x).attr('cy', d => d.y);});function dragStarted(d) {if (!d3.event.active) simulation.alphaTarget(0.3).restart();d.fx = d.x;d.fy = d.y;}function dragged(d) {d.fx = d3.event.x;d.fy = d3.event.y;}function dragEnded(d) {if (!d3.event.active) simulation.alphaTarget(0);d.fx = null;d.fy = null;}</script>
</body></html>
优缺点
- 优点:
- 高度灵活性:
d3.js
提供了丰富的 API,允许开发者对文档的各个部分进行精细的操作和控制。这使得开发者能够根据具体需求,创建出各种独特的、高度定制化的可视化效果,无论是简单的图表还是复杂的关系图谱,都能轻松应对。 - 数据驱动:其核心思想是数据驱动文档操作。通过将数据与文档元素进行绑定,开发者可以方便地根据数据的变化来动态更新可视化内容。这种数据驱动的方式使得可视化效果能够实时反映数据的状态和变化,大大增强了可视化的交互性和动态性。
- 强大的布局算法:
d3.js
内置了多种常用的布局算法,如树形布局、力导向布局、圆形布局等。这些布局算法能够根据数据的结构和特点,自动计算出节点和边的位置和排列方式,从而实现美观、合理的可视化布局。对于展示知识图谱这种复杂的关系结构,力导向布局等算法能够有效地将节点和边分布在二维平面上,使得关系结构清晰可见,方便用户进行观察和分析。
- 高度灵活性:
- 缺点:
- 学习曲线较陡:由于
d3.js
的 API 丰富且功能强大,这也导致其学习成本相对较高。对于初学者来说,需要花费大量的时间和精力去理解和掌握其核心概念、数据绑定方式、各种布局算法以及对文档元素的操作方法等。而且,d3.js
的代码结构和编程风格相对较为灵活,不同的开发者可能会采用不同的方式来实现相同的可视化效果,这也给初学者在学习和参考他人代码时带来了一定的困难。 - 开发效率相对较低:在使用
d3.js
进行可视化开发时,由于其高度的灵活性和定制性,开发者往往需要手动编写大量的代码来实现各种功能和效果,包括数据处理、布局计算、元素绘制、交互设计等各个方面。相比之下,一些专门为特定类型的可视化设计的库,如echarts
等,提供了更简洁、更高效的 API,开发者只需要按照规定的格式准备数据,并调用相应的方法,即可快速实现常见的可视化效果,大大提高了开发效率。因此,在项目时间紧、任务重,且对可视化效果的定制化要求不是特别高的情况下,选择使用d3.js
可能会导致开发进度受到影响。
- 学习曲线较陡:由于
3. echarts
echarts
是一个由百度开源的,基于 JavaScript 的可视化图表库。
应用实例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF - 8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ECharts Graph Example</title><script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script><style>#main {width: 800px;height: 600px;}</style>
</head><body><div id="main"></div><script>const data = {nodes: [{ id: '1', name: 'Node 1' },{ id: '2', name: 'Node 2' },{ id: '3', name: 'Node 3' }],edges: [{ source: '1', target: '2' },{ source: '2', target: '3' },{ source: '1', target: '3' }]};const myChart = echarts.init(document.getElementById('main'));const option = {series: [{type: 'graph',layout: 'force',data: data.nodes,links: data.edges,force: {repulsion: 500},label: {show: true},lineStyle: {normal: {width: 1}}}]};myChart.setOption(option);</script>
</body></html>
优缺点
- 优点:
- 简单易用:
echarts
提供了简洁明了的 API,开发者只需要按照规定的格式准备数据,并调用相应的方法,即可快速实现各种常见的可视化效果,包括柱状图、折线图、饼图、地图以及关系图谱等。对于初学者来说,无需深入了解复杂的可视化原理和图形绘制技术,就能够轻松上手并创建出美观实用的可视化图表,大大降低了开发成本和学习门槛。 - 丰富的图表类型和主题:
echarts
内置了大量丰富多样的图表类型,涵盖了几乎所有常见的数据分析和可视化场景。无论是用于展示数据的分布情况、趋势变化、比例关系还是数据之间的关联关系等,开发者都能够在echarts
中找到合适的图表类型来实现。此外,echarts
还提供了多种精美的主题样式,开发者可以根据项目的需求和风格,轻松切换不同的主题,使可视化图表在外观上更加美观、专业和个性化,满足不同用户对于可视化效果的多样化需求。 - 良好的兼容性和扩展性:
echarts
在设计上充分考虑了兼容性问题,能够在多种主流浏览器上稳定运行,包括 Chrome、Firefox、Safari、Edge 等,同时也支持在不同的设备上进行展示,如桌面电脑、笔记本电脑、平板电脑和手机等,确保用户在各种环境下都能够正常访问和查看可视化图表。此外,echarts
还具有良好的扩展性,开发者可以通过自定义图表组件、渲染器、数据转换器等方式,对echarts
的功能进行扩展和定制,以满足项目中一些特殊的可视化需求场景。这种良好的兼容性和扩展性使得echarts
在实际项目开发中具有很高的适用性和灵活性,能够适应不同的项目需求和技术环境。
- 简单易用:
- 缺点:
- 定制性相对有限:尽管
echarts
提供了一定程度的定制选项,开发者可以通过修改配置参数、使用自定义主题和样式等方式,对可视化图表的外观和一些基本行为进行定制。然而,相较于d3.js
这种高度灵活且专注于底层图形操作的库,echarts
的定制性在一些复杂的、特殊的可视化需求场景下可能会受到一定的限制。例如,当开发者需要实现一些非常独特的交互效果、数据驱动的动态布局变化或者对图形的绘制过程进行深度定制时,echarts
的现有 API 和定制机制可能无法直接满足这些需求,需要开发者花费更多的时间和精力去寻找替代方案或者对echarts
进行二次开发,这在一定程度上增加了开发的难度和成本。 - 对大数据量处理能力有限:随着数据规模的不断增大,在可视化领域中对大数据量的处理能力成为了一个重要的考量因素。
echarts
在处理大数据量时存在一定的局限性。当数据量较大时,echarts
的渲染性能会受到明显的影响,导致图表的加载速度变慢、交互响应不及时,甚至可能出现卡顿、崩溃等现象,严重影响用户体验。这主要是因为echarts
的渲染机制和数据处理方式在设计上并没有充分考虑大数据量的场景,当面对大量的数据点时,其内部的计算和渲染过程会变得非常复杂和耗时,从而导致性能问题的出现。因此,在需要处理大数据量的可视化项目中,开发者需要谨慎考虑是否选择echarts
作为可视化解决方案,或者需要结合其他技术手段来优化echarts
对大数据量的处理能力。
- 定制性相对有限:尽管
总结
- relation-graph:专注于关系图谱展示,使用方便,对关系结构的展示效果好。但生态相对较小,定制性受限,在处理特殊需求或复杂定制时可能力不从心。
- d3.js:高度灵活,数据驱动,拥有强大的布局算法,能够实现各种高度定制化的可视化效果,对于展示复杂的关系图谱具有很大的优势。然而,其学习曲线较陡,开发效率相对较低,需要开发者具备较高的技术水平和编程经验,同时在项目时间紧张的情况下可能不太适用。
- echarts:简单易用,提供了丰富的图表类型和主题,兼容性和扩展性良好,能够快速满足大多数常见的可视化需求,对于初学者和项目时间紧张的情况是一个不错的选择。但是,其定制性相对有限,对大数据量处理能力有限,在面对一些复杂的、特殊的可视化需求或者大数据量场景时,可能无法满足项目的全部要求,需要结合其他技术手段来解决问题。
在实际应用中,应根据项目的具体需求、开发者的技术水平以及时间和资源等因素,综合考虑选择合适的前端插件来展示知识图谱的关系图表。
相关文章:
图谱之前端关系应用
文章目录 图谱之前端关系应用(relation-graph、d3.js、echarts)1. relation-graph应用实例优缺点 2. d3.js应用实例优缺点 3. echarts应用实例优缺点 总结 图谱之前端关系应用(relation-graph、d3.js、echarts) 1. relation-grap…...
Kibana:ES|QL 编辑器简介
作者:来自 Elastic drewdaemon ES|QL 很重要 💪 正如你可能已经听说的那样,ES|QL 是 Elastic 的新查询语言。我们对 ES|QL 寄予厚望。它已经很出色了,但随着时间的推移,它将成为与 Elasticsearch 中的数据交互的最强大…...
建造者模式(或者称为生成器(构建器)模式)
一、什么是建造者模式? 将复杂对象的构建与表示进行分离,使得统一的构建过程,可以创建出不同的对象表现模式 就是将复杂对象里面的成员变量,设置不同的值,使得生成出来的对象拥有不同的属性值; 二、特点…...
【CTFHub】SQL注入cookie注入及知识点
打开题目页面如下 根据提示应该在cookie处注入,通过burp suite抓包并发到重放器 知识点 Cookie 是存储在用户本地计算机上的小文件,由 Web 服务器通过 HTTP 协议发送给浏览器,并保存在用户的浏览器端。当用户再次访问该网站时,浏…...
CSS中样式继承+优先级
继承属性和非继承属性 一、定义及分类 1、继承属性是指在父元素上设置了这些属性后,子元素会自动继承这些属性的值,除非子元素显式地设置了不同的值。 常见的继承属性: 字体 font 系列文本text-align text-ident line-height letter-spacing颜色 col…...
[leetcode](找到vector中的特定元素并删除)无重复字符的最长子串
一.找到vector中的特定元素并删除 #include <iostream> #include <vector> #include <algorithm> int main() { // 示例 vector std::vector<int> vec {1, 2, 3, 4, 5, 6}; // 要删除的元素 int aim 3; // 查找元素 auto it std::fin…...
记录一次 centos 启动失败
文章目录 现场1分析1现场2分析2搜索实际解决过程 现场1 一次断电,导致 之前能正常启动的centos 7.7 起不来了有部分log , 关键信息如下 [1.332724] XFS(sda3): Internal error xfs ... at line xxx of fs/xfs/xfs_trans.c [1.332724] XFS(sda3): Corruption of in-memory data…...
Linux使用SSH连接GitHub指南
基础配置流程 步骤1:生成SSH密钥 打开终端:首先,打开你的Linux终端。 生成SSH密钥对:输入以下命令来生成一个新的SSH密钥对: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"-t rsa:使用RSA加密算法生成密钥。-b 4096:密钥长度为4096位,增加安全性。…...
QModbusTCPClient占用内存持续增长
最近使用QModbusTCPClient通信,需要频繁发送读写请求,发现软件占用内存一直在增减,经过不断咨询和尝试,终于解决了。 1.方案一(失败) 最开始以为是访问太频繁,导致创建reply的对象比delete re…...
具体场景的 MySQL 与 redis 数据一致性设计
场景1: 短视频修改名称,简介等视频数据更新还是清除更新策略如何设计?热 key 处理其他处理自己的数据查询 其他问题冷热突变/突然的热 key 加入如果产品要更新后能所有用户立马看到效果怎么办 ? 场景2: 抢红包如何设计?限制红包的数量 分布式锁的自旋问题 场景 3: 更改用户主…...
机器学习之SVD奇异值分解实现图片降维
SVD奇异值分解实现图片降维 目录 SVD奇异值分解实现图片降维1 SVD奇异值分解1.1 概念1.2 基本步骤1.2.1 矩阵分解1.2.2 选择奇异值1.2.3 重建矩阵1.2.4 降维结果 1.3 优缺点1.3.1 优点1.3.2 缺点 2 函数2.1 函数导入2.2 函数参数2.3 返回值2.4 通过 k 个奇异值降维 3 实际测试3…...
基于.Net Core+Vue的文件加密系统
1系统架构图 2 用例图 管理员角色的用例: 文件分享大厅:管理员可以访问文件分享大厅,下载文件。个人信息管理:管理员可以更新自己的个人信息,修改密码。用户管理:管理员负责创建、更新或删除用户账户&…...
数据结构(链表 哈希表)
在Python中,链表和哈希表都是常见的数据结构,可以用来存储和处理数据。 链表是一种线性数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。链表可以用来实现栈、队列以及其他数据结构。Python中可…...
1161 Merging Linked Lists (25)
Given two singly linked lists L1a1→a2→⋯→an−1→an and L2b1→b2→⋯→bm−1→bm. If n≥2m, you are supposed to reverse and merge the shorter one into the longer one to obtain a list like a1→a2→bm→a3→a4→bm−1⋯. For ex…...
第23篇 基于ARM A9处理器用汇编语言实现中断<五>
Q:怎样修改HPS Timer 0定时器产生的中断周期? A:在上一期实验的基础上,可以修改按键中断服务程序,实现红色LED上的计数值递增的速率,主程序和其余代码文件不用修改。 实现以下功能:按下KEY0…...
VS Code--常用的插件
原文网址:VS Code--常用的插件_IT利刃出鞘的博客-CSDN博客 简介 本文介绍VS Code(Visual Studio Code)常用的插件。 插件的配置 默认情况下,插件会放到这里:C:\Users\xxx\.vscode\extensions 修改插件位置的方法 …...
数智化转型 | 星环科技Defensor 助力某银行数据分类分级
在数据驱动的金融时代,数据安全和隐私保护的重要性日益凸显。某银行作为数字化转型的先行者,面临着一项艰巨的任务:如何高效、准确地对分布在多个业务系统、业务库与数仓数湖中的约80万个字段进行数据分类和分级。该银行借助星环科技数据安全…...
【md文档】公式简单介绍
在Markdown文档中,可以使用LaTeX语法来插入数学公式。以下是一些常见的LaTeX公式示例及其在Markdown中的写法: 1. 行内公式 行内公式使用单个美元符号 $ 包裹。 ‘’’ 这是一个行内公式:$E mc^2$效果: 这是一个行内公式&…...
macOS Sequoia 15.3 beta3(24D5055b)发布,附黑、白苹果镜像下载地址
“ 镜像(黑苹果引导镜像、白苹果Mac镜像、黑苹果虚拟机镜像)下载地址:黑果魏叔官网。” 关于macOS Sequoia 15.3 beta3(24D5055b),以下是对其的详细介绍: 一、版本发布信息 发布时间 …...
HTML学习笔记(4)
目录 一、背景相关样式 二、定位position 三、javascript 1、变量的定义 2、数据类型 3、绑定事件 一、背景相关样式 background-image: url(); // 背景图片 background-repeat: repeat; // 背景图片是否平铺 no-repeat background-size: 200px; // 背景图片尺寸 cover把…...
密钥轮换时,老数据该如何处理
密钥轮换时是否需要重新加密老数据,取决于具体的加密策略和密钥管理系统的设计。以下是两种常见情况及处理方式: 1. 密钥轮换不涉及重新加密老数据 场景:如果密钥轮换仅用于新数据的加密,而老数据仍使用旧密钥解密。 处理方式&a…...
Django框架:python web开发
1.环境搭建: (a)开发环境:pycharm (b)虚拟环境(可有可无,优点:使用虚拟环境可以把使用的包自动生成一个文件,其他人需要使用时可以直接选择导入包ÿ…...
RCD-IoT:在高数据包传输率下,利用资源受限设备实现工业监测与控制
论文标题 中文:RCD-IoT:在高数据包传输率下,利用资源受限设备实现工业监测与控制 英文:RCD-IoT: Enabling Industrial Monitoring and Control with Resource-Constrained Devices Under High Packet Transmission Rates 作者信…...
LabVIEW实车四轮轮速信号再现系统
开发了一个基于LabVIEW的实车四轮轮速信号再现系统。该系统解决现有电机驱动传感器成本高、重复性差、真实性差和精度低等问题,提供一种高精度、低成本的轮速信号再现解决方案。 项目背景 ABS轮速传感器在现代汽车安全系统中发挥着至关重要的作用。为保证其准确性和…...
【Vim Masterclass 笔记16】S07L32 + L33:同步练习09 —— 掌握 Vim 宏操作的六个典型案例(含点评课内容)
文章目录 S07L32 Exercise 09 - Macros1 训练目标2 操作指令2.1. 打开 macros-practice.txt 文件2.2. 练习1:将旧版 Python 代码转换为新版写法2.3. 练习2:根据列表内容批量创建 Shell 脚本2.4. 练习3:对电话号码作格式化处理2.5. 练习4&…...
LabVIEW 实现线路板 PCB 可靠性测试
在电子设备制造领域,线路板 PCB(Printed Circuit Board)的可靠性直接影响产品的整体性能和使用寿命。企业在生产新型智能手机主板时,需要对 PCB 进行严格的可靠性测试,以确保产品在复杂环境下能稳定运行。传统的测试方…...
深入内核讲明白Android Binder【二】
深入内核讲明白Android Binder【二】 前言一、Binder通信内核源码整体思路概述1. 客户端向服务端发送数据流程概述1.1 binder_ref1.2 binder_node1.3 binder_proc1.4 binder_thread 2. 服务端的binder_node是什么时候被创建的呢?2.1 Binder驱动程序为服务创建binder…...
TextButton组件的功能与用法
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了CircleAvatar Widget,本章回中将介绍Button这种Widget,闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 关于Button相信大家都很熟悉,也就是我们常用的按钮。用户按下按钮后…...
HTML5+Canvas实现的鼠标跟随自定义发光线条源码
源码介绍 HTML5Canvas实现的鼠标跟随自定义发光线条特效源码非常炫酷,在黑色的背景中,鼠标滑过即产生彩色变换的发光线条效果,且线条周围散发出火花飞射四溅的粒子光点特效。 效果预览 源码如下 <!DOCTYPE html PUBLIC "-//W3C//D…...
AS自治系统
引言 通过前几天的学习,我们基本了解了静态路由,有静态就肯定有动态,那他们又有哪些区别呢? 静态路由:由网络管理员手工填写的路由信息。动态路由:所有路由器运行相同路由协议,之后,…...
PyQt6 与 REST API:如何实现桌面应用与 Web 服务的无缝对接
PyQt6 与 REST API:如何实现桌面应用与 Web 服务的无缝对接 今日水一篇 在当今互联网时代,数据交互无处不在。桌面应用与 Web 服务的结合,能够为用户提供更丰富、更实时的功能体验。本文将介绍如何利用 PyQt6 实现桌面应用与 REST API 的无…...
endnote x9 如何将参考文献和文中的应用格式由annotated变为编码,例[1],[2]
在 EndNote X9 中,将参考文献和文中引用格式更改为编码形式(如 [1], [2])需要以下步骤: 1. 选择合适的输出样式 打开 EndNote X9。点击菜单栏的 "Edit" > "Output Styles" > "Open Style Manage…...
题解 CodeForces 430B Balls Game 栈 C/C++
题目传送门: Problem - B - Codeforceshttps://mirror.codeforces.com/contest/430/problem/B翻译: Iahub正在为国际信息学奥林匹克竞赛(IOI)做准备。有什么比玩一个类似祖玛的游戏更好的训练方法呢? 一排中有n个球…...
管理口令安全和资源(二)
DBMS_METADATA DBMS_METADATA 是 Oracle 数据库中的一个包,它提供了用于管理数据库元数据的工具和过程。元数据是关于数据的数据,它描述了数据库的结构,包括表、视图、索引、存储过程、用户和其他数据库对象的信息。DBMS_METADATA 包允许用户…...
【漏洞预警】FortiOS 和 FortiProxy 身份认证绕过漏洞(CVE-2024-55591)
文章目录 一、产品简介二、漏洞描述三、影响版本四、漏洞检测方法五、解决方案 一、产品简介 FortiOS是Fortinet公司核心的网络安全操作系统,广泛应用于FortiGate下一代防火墙,为用户提供防火墙、VPN、入侵防御、应用控制等多种安全功能。 FortiProxy则…...
Cadence笔记--原理图导入PCB
1、以PMU6050为例,首先在原理图双击PMU6050器件,在PCB_Footprint目录填写PCB封装名称并且保存,如下图所示: 2、确保原理图命名的名称不一样,否则会出错,这里PMU6050更改了NC等名称,如下图所示&a…...
TOSUN同星TsMaster使用入门——3、使用系统变量及c小程序结合panel面板发送报文
本篇内容将介绍TsMaster中常用的Panel面板控件以及使用Panel控件通过系统变量以及c小程序来修改信号的值,控制报文的发送等。 目录 一、常用的Panel控件介绍 1.1系统——启动停止按钮 1.2 显示控件——文本框 1.3 显示控件——分组框 1.4 读写控件——按钮 1.…...
Redis 缓存穿透、击穿、雪崩 的区别与解决方案
前言 Redis 是一个高性能的键值数据库,广泛应用于缓存、会话存储、实时数据分析等场景。然而,在高并发的环境下,Redis 缓存可能会遇到 缓存击穿、缓存穿透 和 缓存雪崩 这三大问题。这些问题不仅影响系统的稳定性和性能,还经常出…...
用Cursor生成一个企业官网前端页面(生成腾讯、阿里官网静态页面)
用Cursor生成一个企业官网前端页面 第一版: <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...
北京市房屋建筑物轮廓shp数据arcgis高度字段内容下载分析
标题中的“北京市房屋建筑物轮廓shp数据arcgis高度字段”涉及到的是地理信息系统(GIS)中的数据格式和属性字段。在GIS领域,SHP(Shapefile)是一种常见的矢量数据格式,用于存储地理空间特征,如点、…...
深度学习常见术语解释
正例与负例: 在分类任务中,通常将目标类别称为正例(positive),非目标类别称为负例(negative)。 True Positives(TP): 被正确地划分为正例的个数,…...
《内网穿透:网络拓展与安全防护的平衡艺术》
一、引言:开启内网穿透的大门 在当今数字化浪潮席卷全球的时代,网络已成为人们生活和工作中不可或缺的一部分。我们日常使用的网络,如同一个庞大而复杂的生态系统,其中内网和外网犹如两个相互关联却又有所区别的世界。 想象一下…...
文件读取和输入输出
文件指针 在C语言中,文件操作是通过文件指针来进行的。文件指针是一个指向 FILE 结构的指针,用于标识和操作一个文件。 FILE *fp; 常用的文件操作函数 fopen:打开文件。fclose:关闭文件。fread:从文件中读取数据。…...
【Linux系列】查看服务器是否使用了 SSD 的多种方法
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
基础入门-传输加密数据格式编码算法密文存储代码混淆逆向保护安全影响
知识点: 1、传输格式&传输数据-类型&编码&算法 2、密码存储&代码混淆-不可逆&非对称性 一、演示案例-传输格式&传输数据-类型&编码&算法 传输格式 JSON XML WebSockets HTML 二进制 自定义 WebSockets:聊天交互较常…...
通过idea创建的springmvc工程需要的配置
在创建的spring mvc工程中,使用idea开发之前需要配置文件包括porm.xml、web.xml、springmvc.xml 1、porm.xml 工程以来的spring库,主要包括spring-aop、spring-web、spring-webmvc,示例配置如下: <project xmlns"http:/…...
PyTest自学-认识PyTest
1 PyTest自学-认识PyTest 1.1 PyTest可以用来做什么? PyTest是一个自动化测试框架,支持单元测试和功能测试,有丰富的插件,如,pytest-selemium, pytest-html等。 1.2 安装pytest 使用pip install -U pytest。 1.3 py…...
JavaScript系列(31)--装饰器详解
JavaScript装饰器详解 🎨 今天,让我们深入探讨JavaScript的装饰器(Decorators)。装饰器是一种用于修改类和类成员的强大语言特性,它让我们能够以声明式的方式增强类的功能。 装饰器基础概念 🌟 …...
培养未来:2024年少儿编程教育的实践与思考
目录 引言 : 正文: 一、Scratch教学的深化 二、代码编程的多样化 三、赛教融合驱动 四、社区互动与共同成长 结语 : 引言 : 在快速发展的科技时代,编程教育作为培养未来技术人才的重要环节,不断经历…...
ComfyUI-PromptOptimizer:文生图提示优化节点
ComfyUI-PromptOptimizer 是 ComfyUI 的一个自定义节点,旨在优化文本转图像模型的提示。它将用户输入的提示转换为更详细、更多样化、更生动的描述,使其更适合生成高质量的图像。无需本地模型。 1、功能 提示优化:优化用户输入的提示以生成…...