自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 处理v-html的潜在XSS风险

没有进行防止xss攻击的例子<p v-html="test"></p> export default { data () { return { test: `<a οnclick='alert("xss攻击")'>链接</a>` }}结果,js事件被执行,弹出弹框,我们要杜绝这种情况,保留a标签,拦截onclick事件解决办法法一:使用一个xss的npm包来过滤xss攻击代码,给指令的value包上一层xss

2020-09-25 10:11:54 1599

原创 (十五)算法设计思想之“回溯算法”

算法设计思想之“回溯算法”

2020-09-24 23:19:17 365

原创 (十四)算法设计思想之“贪心算法”

算法设计思想之“贪心算法”

2020-09-24 22:55:42 238

原创 (十三)算法设计思想之“动态规划”

算法设计思想之“动态规划”

2020-09-24 22:39:48 199

原创 (十二)算法设计思想之“分而治之”

算法设计思想之“分而治之”

2020-09-24 21:06:47 723

原创 (十一)进阶算法之“搜索排序”

进阶算法之“搜索排序”排序和搜索简介排序和搜索是什么?JS中的排序和搜索排序算法搜索算法Javascript实现:冒泡排序Javascript实现:选择排序Javascript实现:插入排序Javascript实现:归并排序Javascript实现:快速排序Javascript实现:顺序搜索Javascript实现:二分搜索LeetCode:21.合并两个有序链表LeetCode:374.猜数字大小思考题排序和搜索简介排序和搜索是什么?排序:把某个乱序的数组变成升序或者降序的数组搜索:找出数组中某个

2020-09-24 15:44:33 479

原创 分享一张前端知识点思维导图

前端知识点梳理

2020-09-10 15:06:59 366

原创 微信接口请求问题

背景今天碰到了一个问题:微信开发者工具中接口请求得通,但是真机调试接口不通,报如下问题经过各番操作,发现是SSL证书已过期问题

2022-03-03 13:31:21 184

原创 三、如何手动实现一个微前端框架雏形

如何手动实现一个微前端框架雏形一、了解微前端1. 什么是微前端为了解决一整块儿庞大的前端服务所带来的变更和拓展方面的限制,将整体前端服务拆分成一些更小、更简单的,能够独立开发、测试部署的小块儿。但是在整体表现上还是一个整体的产品的服务称为微前端。2. 为什么要学习微前端2.1 关键优势每个分模块的规模更小,更利于维护松散各个模块之间的耦合。可以实现增量升级,避免在重构的时候影响整体逻辑技术栈无关,可以在每个子模块之间选取合适的技术栈进行开发独立开发独立部署2.2 为什么要学在重构项目

2022-01-03 19:29:40 740

原创 (二)架构基础知识

软件设计原则与分层软件设计原则单一职责原则永远不应该有多余一个原因来改变某个类理解:对于一个类而言,应该仅有一个引起它变化的原因应用:如果一个类拥有了两种职责,那就可以将这个类分成两个类开放封闭原则软件实体扩展应该是开放的,但对于修改应该是封闭的理解:对扩展开放,对修改封闭,可以去扩展类,但不要去修改类应用:当需求有改动,尽量用继承或组合的方式来扩展类的功能,而不是直接修改类的代码里氏替换原则理解:父类一定能够被子类替换最少知识原则只与你最直接的对象交流理解:低耦合,高内聚应用

2022-01-03 19:28:48 1147

原创 vite打包编译后类名混淆冲突问题处理

vite打包编译后类名混淆冲突问题处理背景在项目开发过程中,发现同个views引用的不同stora打包编译后的类名偶发性存在一致的情况,都为n,导致类名冲突解决方案类名不进行打包混淆处理,防止丢弃或修改类名找到vite官网发现有terserOptions的配置,于是增加terserOptions配置,配置如下: build: { minify: 'esbuild', // 进行压缩计算 brotliSize: false, outDir: e

2021-12-30 10:52:59 7473 2

原创 gulp与node版本兼容问题

背景今年打包一个旧项目时,发现打包报错,报发现是node和gulp版本兼容问题,gulp是4以下,node版本是14的,用nvm把node版本降至12以下,例如11.15.1就可以了但是我的电脑是macbook pro m1,执行nvm install v11.15.1时又出现如下问题:执行arch -x86_64 zsh,再执行nvm install v11.15.1就可以了...

2021-12-08 19:32:17 1554

原创 (一)导学

导学了解微前端什么是微前端为什么要学习微前端关键优势为什么要学手写一个框架可以给我们带来什么微前端实现方式对比iframe优势:劣势:基于 SPA 的微前端架构优势:劣势:确定技术栈项目架构图前端架构的前世今生初始后端mvc架构前后端分离架构Nodejs的广泛使用促进了前端技术的飞速发展单页面架构大前端时代微前端等新型架构--天下大势合久必分分久必合了解微前端什么是微前端为了解决一整块儿庞大的前端服务所带来的变更和拓展方面的限制,将整体前端服务拆分成一些更小、更简单的,能够独立开发、测试部署的小块儿。

2021-11-22 22:19:11 196

原创 静态资源部署到服务器不能访问

静态资源部署到服务器不能访问背景前端静态资源部署到服务器后不能访问,手机上可以访问,发现是10080端口的锅,谷歌浏览器认为10080端口是不安全的端口

2021-11-10 19:51:16 897

原创 本地开发环境与生产环境布局有偏差问题

本地开发环境与生产环境布局有偏差问题背景本地开发布局时好好的,发现打包部署后有偏差,发现本地开发环境和生产环境获取的document.body.clientWidth值不一致同个窗口大小,本地http://localhost:3000/#/big-screen/bighorn访问获取的是2056,生产环境获取的是1542经过测试发现用本地ip不用localhost访问的是正确的总结以后本地开发用ip访问进行布局吧,以免和生产环境出现一些布局偏差,也还不知道啥原因,哪位大佬知道原因的评论区

2021-11-10 17:39:32 411

原创 (七)传输加载优化(前沿技术解决高访问量网站性能优化问题)

传输加载优化启用压缩Gzip【必会的传输压缩方案】Gzip安装ngnix启用Keep Alive【通过一个参数提速连接】Keep AliveHTTP资源缓存【必会的HTTP缓存方法】看看第三方如何缓存的启用压缩Gzip【必会的传输压缩方案】Gzip是用来做网络资源压缩,帮我们减小资源文件在网络传输大小的技术,网络传输的过程中,去进行这种实时的动态的一个压缩,这个可以说是我们唯一可以选择的一个技术,Gzip压缩比和压缩效率比较高在传输层进行的动态压缩和我们之前讲的对资源文件的压缩是不同的概念Gzip

2021-06-20 12:14:04 435

原创 图片资源优化

前沿优化解决方案

2021-05-24 22:13:59 214

原创 现有工程项目上加响应式

传输加载优化

2021-05-24 22:08:54 110

原创 (四)代码优化 (快来看看怎样写出真正高性能的代码)

代码优化

2021-05-24 22:07:17 783

原创 (六)构建优化(揭开webpack性能优化的内幕)

@TOC

2021-05-24 22:05:48 249

原创 (五)资源优化 (经典性能优化解决方案)

资源优化

2021-05-24 22:04:50 2462

原创 (三)渲染优化 (与浏览器为友,共进退)

渲染优化

2021-05-24 22:04:03 434

原创 (二)性能优化的指标和工具 (告别前端小白,成为大神的必经之路)

性能优化的指标和工具

2021-05-24 22:01:48 798 2

原创 (一)导学

导学

2021-05-24 22:00:28 135

转载 uniapp自定义条件编译-定制化产品

背景最近有个uniapp小程序产品,产品需要根据不同地区有不同的定制化需求,这边用到的是uniapp的自定义条件编译uniapp从2019年8月就已经支持自定义条件编译,如果不自定义,uni-app默认支持如下枚举值:h5、mp-weixin、mp-alipay、mp-baidu、mp-toutiao、mp-qq,我们可以通过在package.json文件中增加uni-app扩展节点(开发中需要去掉注释),可实现自定义条件编译平台(如钉钉小程序、微信服务号等平台)package.json配置扩展节点

2021-05-21 15:02:58 1016 1

原创 markdown写法

分享主题目录一常用功能代码高亮:代码片cssjspowershell无序列表:有序列表:引用:粗体:斜体:链接:图片:分割线:表格:制作待办事项To-do List:高效绘制 流程图:序列图:甘特图:四级标题目录二二级标题三级标题四级标题目录一常用功能代码高亮:alert('hello world')代码片css.container { width: 100%;}js// js代码片alert(1);powershellcp -r dir1 dir2无序列表:列表1

2021-05-20 19:28:37 87

原创 chrome新版本中iframe嵌套cookie跨域携带问题

问题:新版chrome浏览器嵌套frame页面一直没法显示出来(空白页面),页面未报错问题分析:Google 在2020年2月4号发布的 Chrome 80 版本默认屏蔽所有第三方 Cookie,即默认为所有 Cookie 加上 SameSite=Lax 属性(https://www.chromestatus.com/feature/5088147346030592),并且拒绝非Secure的Cookie设为 SameSite=None(https://www.chromestatus.com/fe

2021-05-19 16:34:49 7562 1

原创 eslint规范

eslint规范背景配置eslint检测不通过,错误显示在浏览器,且编译失败vscode配置eslint代码提示和自动格式化功能安装eslint插件开启错误提示配置自动格式化背景在开发过程中eslint没有进行强制规范,导致项目代码很多警告,代码不规范,为此从根源上解决进行强制规范配置eslint检测不通过,错误显示在浏览器,且编译失败vue.config.js配置如下内容:module.exports = { devServer: { overlay: {

2021-05-19 11:24:03 731

原创 原生JS实现Ajax和JSONP跨域请求

背景:对接身份证录入和门锁卡号录入设备中,安装驱动完成后,提供的接口服务是http://localhost:8099/?cmd=readbcardid&charset=gbk,返回的数据格式如下:要求在vue项目上实现JSONP跨域请求,不想因此加载第三方资源,于是利用原生JS构建简单的AJAX,还有跨域请求JSONP的实现AJAX的根本是XMLHttprequest,而一个完整的AJAX请求一般包括以下步骤:实例化XMLHttpRequest对象连接服务器发送请求接收响应数据下面

2021-04-26 09:09:05 321

原创 background-image引用svg問題

background-image: url('data:image/svg+xml;charset=utf-8,<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 180 320" style="enable-background:new 0 0 180 320;" xml:sp

2021-04-23 09:47:30 4181

原创 linux常用命令

rm -rf dir // 删除文件cp -r dir1 dir2 // 拷贝文件

2021-03-25 10:21:52 66

原创 git常用命令

远程仓库相关命令git config --global user.name "xxx" # 配置用户名 git config --global user.email "[email protected]" # 配置邮件 git init // 本地初始化git add . // 添加所有文件git commit -m "first commit" // 提交git remote add [name] [url] // 添加远程仓库git

2021-03-13 18:08:21 93

原创 ps切图

1.用CTRL + ++ 放大图像,ctrl + --缩小图像,将图像放大至每像素(最大)2.CTRL+R调出标尺(视图>标尺),将要切的图形框住3.快捷键M调出矩形选框工具,将要切的图形按标尺划分的框全部选中4.用ctrl + shift + c 合并复制 选中的图形5.用ctrl +n新建文件,该文件尺寸已按刚被复制的图形尺寸设定,注意选择图像为透明状态6.在新建文件内按ctrl + v 粘帖到新文件上7.用ctrl + shift + alt + s 或者在“文件”菜单选择“存储为w

2021-03-13 16:36:51 126

原创 vue.extend的问题

问题场景使用Vue.extend时<template> <div> <div id="mount-point"></div> </div></template><script>import Vue from 'vue'export default { mounted() { const Profile = Vue.extend({ data() {

2021-01-03 21:57:33 646

原创 Linux上搭建verdaccio私服

Linux上搭建verdaccio私服安装node环境1.wget下载到本地目录2.解压及重命名3.设置node全局环境变量4.让修改的环境变量文件生效5.验证安装verdaccio1.安装2.修改配置文件3.在配置文件末尾最后添加监听端口4.启动verdaccio利用pm2一直守护verdaccio进程1.安装pm22.pm2启动verdaccio3.查看pm2 守护下的进程verdaccio的实时日志安装node环境1.wget下载到本地目录wget https://nodejs.org/dist

2020-12-29 22:48:30 1079

转载 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory今天项目运行时,会中途退出,并且报错百度得知是nodejs内存溢出问题网上有很多解决方案这边先记录下这个问题,用如下方法解决全局安装:npm install -g increase-memory-limit项目目录下执行命令:increase-memory-limit...

2020-12-09 15:00:52 605

原创 安装NVM、NRM

root: C:\Users\zhong\AppData\Roaming\nvm path: C:\Program Files\nodejs arch: 64 proxy: none node_mirror: http://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/

2020-11-23 21:47:47 162

原创 (三)HTTP再邂逅--熟悉HTTP协议结构和通讯原理

HTTP再邂逅--熟悉HTTP协议结构和通讯原理HTTP协议特点URL和URI的区别和联系HTTP报文结构分析HTTP请求方法剖析HTTP响应状态码拆解用telnet分析http协议的通讯过程HTTP状态管理:Cookie与SessionHTTP协议特点URL和URI的区别和联系HTTP报文结构分析HTTP请求方法剖析HTTP响应状态码拆解用telnet分析http协议的通讯过程HTTP状态管理:Cookie与Session...

2020-11-12 14:59:20 273 1

原创 (二)HTTP初相识--了解HTTP协议

HTTP初相识--了解HTTP协议浏览器背后的故事浏览器背后的故事通过DNS服务器查询域名所映射的IP地址,浏览器通过查询到的ip地址和WEB服务器进行通讯,通讯的协议就是HTTP协议WEB服务器收到请求,自然会到后端来执行,然后将执行结果以响应报文的形式回传给浏览器,浏览器将响应报文进行渲染,渲染以后就是我们看到的页面了渲染引擎是根据我们的html文件描述对应相对应的数学模型,调用我们浏览器的各个零部件,把我们网页资源的源代码展示成图像结果HTTP超文本传输协议(HTTP)是一种通信协议,它

2020-11-09 11:18:14 250

原创 (一)导学

导学对于程序员,HTTP只是表面上简单,底层原理非常复杂,很少去深究HTTP背后的细节对于运维人员,部署环境应用,应用https安全,大型分布式设计,都离不开http底层原理互联网必备的HTTP协议基础:HTTP工作方式、HTTP协议结构、HTTP通讯原理、HTTP协议特性接下来的章节会细化体系地讲HTTP的一个恋爱路线,了解底层原理...

2020-10-29 17:15:47 82

空空如也

空空如也

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

TA关注的人

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