自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Electron的学习 --- day1

electron有主进程和渲染进程之分,主进程可以简单理解为main.js , 也就是主程序运行后的窗体,而渲染进程则是main.js中所创建的窗体通过loadFile()加载的HTML页面的进程,在渲染进程中可以通过按钮单机创建新的窗体,但是无法直接使用BrowserWindow,而是需要使用remote. remote本来是用于在渲染进程中打开新窗体的。每个electron 中的web 页面运行在它自己的渲染进程中,也就是我们说的渲染进程.也就是说主进程控制渲染进程,一个主进程可以控制多个渲染进程.

2023-12-11 16:30:19 132

原创 Vite学习 -- 05

由于浏览器的缓存机制,静态资源名字只要不改,那么他就会直接用缓存的. 刷新页面: 请求的名字是不是同一个?hash算法: 将一串字符串经过运算的到一个新的乱码字符串。利用好hash算法可以让我们更好的去控制浏览器缓存机制.vite对静态资源基本上是开箱即用的. vite对svg依旧是开箱即用的.我们如果写的是相对路径 , 那么他会尝试去拼接成绝对路径.我们在main.js中引入文件的时候,一定会读文件.缺点: 没法很好的去表示层次丰富的图片信息.我们在前端领域里更多的是用svg去做图标.

2023-05-19 14:27:52 1007

原创 Vite学习 --- CSS相关

我们写的css代码(怎么爽怎么来)—> postcss —> 【去将语法进行编译(嵌套语法,函数,变量)成原生css】less sass 等预处理器都可以做 —> 再次对未来的高级css语法进行降级 —> 前缀补全 —> 浏览器客户端.我们写的js代码(怎么爽怎么来) --> babel --> 将最新的ts语法进行转换js语法 --> 做一次语法降级 --> 浏览器客户端去执行.在vite.config.js 中我们通过css属性去控制整个vite对于css的处理行为.less是可以定义变量的.

2023-05-10 15:39:53 824

原创 Vite学习 --- 03

补充一个小知识点: 为什么vte.config.js可以写成esmodule的形式,这是因为vite在他读取这个vite.config.js的时候会率先用node去解析文件语法,如果发现你是esmodule规范会直接将你的esmodule规范进行替换变成commonjs规范.vite做了一个拦截,他为了防止我们将隐私性的变量直接送进import.meta.env中,所以他做了一层拦截,如果你的环境变量不是以VITE开头,他就不会注入到客户端中去,如果我们想要更改这个前缀,可以使用envPrefix配置.

2023-05-06 00:05:06 322

原创 Vite学习 -- 02

首先vite 会找到对应的依赖,然后调用esbuild(对js语法进行处理的一个库),将其他规范的代码转换成esmodule规范,然后放到当前目录下的node_modules/.vite/deps, 同时对esmodule规范的各个模块进行统一集成.3.网络多包传输的性能问题(也是原生esmodule规范不支持node_modules的原因之一), 有了依赖构建以后无论他有多少额外的export 和 import, vite 都会尽可能将他们进行集成最后只生成一个或者几个模块.以上为开发环境做的事情.

2023-05-05 17:43:06 147

原创 Vite学习笔记01

构建工具他让我们不用每次都关心我们的代码在浏览器如何运行,我们只需要首次给构建工具提供一个配置文件(这个配置文件也不是必须的,如果你不给他 他会有默认的帮你去处理), 有了这个集成的配置文件以后, 我们就可以在下次需要更新的时候调用一次对应的命令就好了, 如果我们再结合热更新, 我们就更加不需要任何东西, 这就是构建工具去做的东西,起因: 我们的项目越来越大 ----> 构建工具(webpack) 所要处理的js代码就越多 【跟webpack的一个构建过程(工作流程) 有关系】.

2023-05-04 22:52:46 113

原创 Nginx学习 ----- 前端项目部署

在前后端还没有分离的时代下,前端项目通常是放在后端项目的静态资源目录下一起部署的,那个时候还没有专门的前端程序员,或者说前端程序员不需要自己部署网站.通常前端人员只需要把网站源文件如.html文件结尾的资源包发给后端或者运维即可,剩下的事情便交给后端或运维定了.但随着技术的发展,前后端分离开发后,前端项目也通常分离部署了,这个时候可能就需要前端人员自己部署前端项目,然而前端开发人员很少接触到服务器等知识,所有部署网站时总是捉襟见肘.这个时候重启nginx , 我们的网站无法访问了,因为我们没有这个文件夹.

2023-04-28 16:59:58 1214

原创 Nginx学习 --- 防盗链与高可用集群

具体点就是用户发送请求给nginx服务器,nginx服务器根据请求去寻找资源,请求的比如说是有个index.html文件,这个文件中会包含很多js,css,img等资源,这些文件在这个骨架中会被二次请求,在第二次请求时,会在请求头部加上有个referer,这个referer只会在第二次请求时才会被加上. (referer表示第二次资源的来源地址).防盗链简单来说就是存在我们服务种的一些资源,只有我们规定的合法的一类人才能去访问,其他人就不能去访问的资源(如css,js,img等资源).

2023-04-26 15:18:48 85

原创 Nginx学习 ----- 配置Nginx网关服务器

在真实的开发中,会利用Nginx实现这种效果,就是对于外网,是无法直接访问tomcat服务器的,只能通过nginx, 也就是内网来代理tomcat进行访问, 此时nginx可以成为网关服务器, 并且它还包括了反向代理, 负载均衡, 动静分离功能.但是此时直接访问tomcat服务器,tomcat服务器直接访问还是失败,此时就只能通过nginx来访问tomcat了.接下来在tomcat服务器上添加防火墙规则,指定nginx 的ip地址才可访问8080端口.加完规则后不是实时生效,需要重启防火墙.

2023-04-25 19:44:51 774

原创 Nginx 学习 --- 动静分离

具体含义: 给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所有不会产生额外的流量,也就是所谓的客户端缓存。为了加快网站的解析速度,可以把动态页面和静态页面交给不同的服务器来解析,来加快解析速度,提高请求的访问效率,降低原来单个服务器的压力,下面是动静分离的原理图.,发送一个请求,对比服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码。参数设置,使浏览器缓存文件的过期时间,从而减少与服务器之间的请求和流量.目录时,会列出该目录下的所有文件.

2023-04-25 15:31:01 132

原创 Nginx学习 ---- js胖笔记

在外界看来,虚拟主机就是一台独立的服务器主机,这意味着用户能够利用虚拟主机把多个不同域名的网站部署在同一台服务器上,而不必再为简历一个网站单独购买一台服务器,既解决了维护服务器技术的难题,同时又极大地节省了服务器硬件成本和相关的维护费用。只有精确匹配有时是完不成我们的工作任务的,比如现在我们要禁止访问所有php的页面,php的页面大多是后台的管理或者接口代码,所以为了安全我们经常要禁止所有用户访问,而只开放公司内部访问的。处理错误的时候,不仅可以只使用本服务的资源,还可以使用外部的资源。

2023-04-25 14:34:41 186

原创 Nginx 学习 ------ 常用命令和配置文件

从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行Nginx服务器的用户(组),允许生成的worker process数,进程PID存放路径, 日志存放路径和类型以及配置文件的引入等.这是Nginx服务器并发处理服务的关键配置,worker_process 值越大,可支持的并发处理量也越多,但是 会受到硬件,软件等设备的制约.这算是Nginx服务器配置中最频繁的部分,代理,缓存和日志定义绝大多数功能和第三方模块的配置都在这里.

2023-04-24 15:44:43 109

原创 Nginx学习 --- 基本使用 ( 反向代理与负载均衡 )

这个方法确保了相同的客户端的请求一直发送到相同的服务器,这样每个访客都固定访问一个后端服务器,如用户需要分片上传文件到服务器下,然后再由服务器将分片合并,这时如果用户请求到达了不同的服务器,那么分片将存储于不同的服务器目录中,导致无法分片合并,该场景需要使用ip hash 策略.将多个请求分摊到多台服务器上,相当于把一台服务器需要承担的负载量交给多台服务器处理,进而提高系统的吞吐量;该方式是默认方式,轮询适合服务器配置相当,无状态且短平快的服务使用.另外在轮询中,如果服务器挂掉,会自动剔除该服务器.

2023-04-21 19:20:17 88

原创 JavaScript BOM

JS是单线程的,所以每次只能执行一段代码.为了调度不同代码的执行,JS维护了一个任务队列.其中的任务会按照添加到队列的先后顺序执行.setTimeout()的第二个参数只是告诉JS引擎在指定的毫秒数过后把任务添加到这个队列.如果队列是空的,则会立即执行该代码.如果队列不是空的,则代码必须等待前面的任务执行完才能执行.可以在用户历史记录中沿任何方向导航,可以前进也可以后退.这个方法之接收一个参数,这个参数可以是一个整数,表示前进或后退多少步负值表示在历史记录中后退,正值表示在历史记录中前进.

2022-09-27 14:57:54 287 2

原创 搞懂 Cookie,session与token仅需此篇!

(1) Web中什么是会话?用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话.(2) 什么是Session?Session : 在计算机中,尤其是在网络应用中,称之为"会话控制" .Session 对象存储特定用户会话所需的属性及配置信息.(3)Session什么时候产生?当用户请求来自应用程序的web页是,如果该用户还没有会话,则Web服务器将自动创建一个Session对象.

2022-09-21 16:08:34 679

原创 执行上下文与作用域

执行上下文的概念在JS中是颇为重要的.变量或函数的上下文决定了它们可以访问那些数据,以及它们的行为.每个上下文都有一个关联的变量对象,而这个上下文中定义的所有变量和函数都存在于这个对象上.虽然无法通过代码访问变量的对象,但后台处理数据会用到它.

2022-09-19 21:44:12 512

原创 网络请求与远程资源之解决跨域问题

所谓代理就是本该以我的名义做的事情,现在找一个中间人代我去做.代理前 : 客户端 -> 客户端代理后: 客户端 -> 代理服务器 -> 服务器.

2022-09-08 21:03:49 363 1

原创 网络通信与远程资源之WebSocket

WebSocket的目标是通过一个长时连接实现与服务器全双工,双向的通信.在JavaScript中创建WebSocket时,一个HTTP请求会发送到服务器以初始化连接.服务器响应后,连接使用HTTP的Upgrade头部从HTTP协议切换到WebSocket协议.这意味着WebSocket不能通过标准HTTP服务器实现,而必须使用支持该协议的专有服务器.

2022-09-08 00:42:04 913

原创 网络请求与远程资源之Fetch

只使用URL时,fetch()会发送GET请求,只包含最低限度的请求头.要进一步配置如何发送请求,需要传入可选的第二个参数init对象.init对象的填充规则请自行查阅.

2022-09-07 22:56:20 1108

原创 网络请求与远程资源之AJAX技术

第二个最常用的方法是POST请求,用于向服务器发送应该保存的数据. 每个POST请求都应该在请求体中携带提交的数据,而GET请求则不然.POST请求的请求体可以包含非常多的数据,而且数据可以是任意格式. 要初始化POST请求,open()方法的第一个参数要传"post",send()方法接收一个参数,是作为请求体发送的数据.如果不需要请求体,则必须传null,因为这个参数在某些浏览器中是必需的.调用send()之后,请求就会发送到服务器.

2022-09-07 18:24:31 160

原创 nodejs支付宝沙箱模拟支付与nodemailer发送邮件(一)

11.此处需要配置appid,支付宝公钥和应用私钥,其余两个是固定的,这些操作我们在前已近完成了,只需要把对应的公钥和私钥填入即可.6.下载支付宝方平台助手网址https//opendocs.alipay.com/common/02khjo。这里需要注意的时,nodejs在密钥格式上要选择PKCS1,也就是非JAVA适用.!点击公钥模式,对加签内容进行配置.7.生成私钥以及公钥....

2022-07-30 23:09:40 701

原创 ReactRouterV6的基本使用

React RouerV6的基本使用

2022-06-08 20:00:15 487

原创 js学习之函数部分

第十章:函数.函数实际上是对象.每个函数都是Function类型的实例,而Function也有属性和方法,跟其他引用类型一样,因为函数是对象,所以函数名就是指向函数对象的指针,而且不一定与函数本身紧密绑定.函数通常以函数声名的方式定义:function sum(num1,num2) { return num1+num2; }函数表达式:let sum = function(num1,num2) { r

2022-03-15 18:26:00 1348

原创 javascript链表之单链表

学了js这么久 还没有拿js写一个链表,刚好这段时间复习数据结构的东西,早上结束了对于图的战斗.下午解锁了js链表的“新技能” 首先关于链表的存储啥的咱就不扯了,我是学c语言的时候学的链表,单链表,双向链表,循环链表....,所以如果对于链表咋存储还不懂得小伙伴还是先看看基础吧,链表确实不难. 首先呢我们先讲一个叫class的东西. ES6引入了class类的概念,创建的每一个class类,都会有一个constructor()方法,该方法是一种用于创建和初始化class创建的对象的特殊.

2021-12-23 21:48:00 730

原创 C语言数据结构---图的广度搜索

昨天学校连夜组织做核酸,西安的夜晚确实挺冷的,所以今天起的有点晚了,刚刚外面还在冒着雪花,好了,闲话不多扯,开始介绍今天的主角—图的广度搜索遍历.关于图的存储(邻接矩阵的方法)我在上一篇博文里面已经有介绍了.大家没有看的可以看看我的上一篇博文.首先说一下他的原理吧:基本思想:从图的某个顶点V0出发,首先访问V0.依次访问V0各个未被访问的邻接点.分别从这些邻接点出发,依次访问他们的各个未被访问的邻接点.访问时应该保证:如果Vi和Vk为当前端结点,且Vi和Vk在之前未被访问,则Vi的所有未被访问

2021-12-23 15:32:36 1007

原创 c语言数据结构图的存储(邻接表)和深度优先搜索

近期西安的疫情确实严重,今天早上接到学校通知要全体同学回到宿舍隔离,于希望疫情早点过去,同时也致敬那些奋战在一线的防疫战疫人员们。临近期末,得赶快复习了,今天写一篇关于图的相关东西。首先是存储了,我所选用的是邻接矩阵的存储方式,那么所定义的存储结构里面呢要包含以下这几个东西:1.关于图的顶点信息,说白了也就是顶点的名字,我所选用的是字符型。2.边的关系,这里面用二维数组的方式进行存储,比如Ai与Aj这两个顶点,如果他们之间存在一条边相连接,那么a[i][j]=w,这里的w代表权值,如果没有边的话,

2021-12-22 17:40:08 1433

原创 2021-10-23

标题 c语言二维数组鞍点的查找这一周又混过去了,已经周六了,希望各位小伙伴过一个愉快的周末,本周学习了数据结构的多维数组和广义表,老师给我们布置了作业,里面有一道算法设计题,下面和大家聊聊的思路:题目:鞍点是指矩阵中的元素A[i][j]是第i行中值最小的元素,同时又是第j列中值最大的元素,试设计算法求矩阵A的所有鞍点.相信鞍点的定义非常简单,在这就不做过多赘述了,那么既然是第i行中最小的元素,j列中最大的元素,那么咱们可以通过循环,首先找出每一行中最小元素对应的列下标,然后在到每一列里面去进行比较,

2021-10-23 14:22:34 118

原创 “webpack”技术之入口(entry)

一,webpack的概念:本质上,webpack是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个依赖图,然后将你项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的项目内容。从 v4.0.0 开始,webpack 可以不用再引入一个配置文件来打包项目,然而,它仍然有着高度的可配置性,可以很好满足你的需求。(说白了,因为咱们的不同静态资源放在不同的模块下,当用户使用咱们的网页...

2021-10-15 17:30:38 2204

原创 浅谈CSS之浮动与定位

浅谈CSS之浮动与定位一,浮动1.传统网页布局的三种方式:网页布局的本质——用CSS来摆放盒子。把盒子摆放到相应的位置。CSS提供了三种传统布局方式(简单说,就是盒子如何进行排列顺序)。*普通流*浮动*定位1.2 标准流特点1.块级元素会独占一行,从上到下顺序排列。常用元素:div,p,h1-h6,ul,ol,dl,form,table.2.行内元素按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。常用元素:span,a,i,em等。1.3为什么需要浮动?浮动可以改变元素标签默

2021-04-22 14:50:29 699 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除