经验分享
文章平均质量分 67
hl199626
这个作者很懒,什么都没留下…
展开
-
网络传输若干问题一:域名解析、JSONP、301/302
域名解析原理DNS 是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为ip地址。具体过程如下:JSONP利用 标签没有跨域限制的漏洞,网页可以得到从其他来源动态产生的 JSON 数据。JSONP请求一定 需要对方的服务器做支持才可以。JSONP优点是简单兼容性好,可用于解决主流浏览器的跨域数据访问的问题。缺点是仅支持get方法具有局限性, 不安全可能会遭受XSS攻击。手写JSONP实现步骤:301和302的含义参考答案:301和30原创 2022-07-08 20:25:20 · 570 阅读 · 1 评论 -
网络传输若干问题二:http缓存、常用请求头响应头、ajax封装
http缓存有几种http缓存的分类:根据是否需要重新向服务器发起请求来分类,可分为(强制缓存,协商缓存) 根据是否可以被单个或者多个用户使用来分类,可分为(私有缓存,共享缓存) 强制缓存如果生效,不需要再和服务器发生交互,而协商缓存不管是否生效,都需要与服务端发生交互。缓存分类强制缓存强制缓存在缓存数据未失效的情况下(即Cache-Control的max-age没有过期或者Expires的缓存时间没有过期),那么就会直接使用浏览器的缓存数据,不会再向服务器发送任何请求。强制缓存生效时,http状态码为原创 2022-07-06 20:46:13 · 515 阅读 · 0 评论 -
HTML5的新特性?伪类和伪元素?
记录一下HTML5的新特性、移除元素。还有经常容易搞混的CSS伪元素和伪类。H5移除的元素表现的元素:basefont、big、center、font、s、strike、tt、u.可用性低元素:frame、frameset、noframes.伪类 pseudo-classes 用于已有元素处于某种状态时为其添加对应样式。伪类名称不区分大小写,单冒号前面和后面不能有空格。① 比如 a链接的不同状态,未点击过、已点过、聚焦等等。a链接的不同状态, 有效的顺序是:link visited hover f原创 2022-07-04 20:29:54 · 353 阅读 · 0 评论 -
CSS继承属性和非继承属性?
CSS中,属性众多,我们暂时不讨论属性的兼容性,先看看继承性,属性的继承是一块比较重要的知识点,现在罗列如下:1、无继承性的属性1、display:规定元素应该生成的框的类型2、文本属性:vertical-align:垂直文本对齐text-decoration:规定添加到文本的装饰text-shadow:文本阴影效果white-space:空白符的处理unicode-bidi:设置文本的方向3、盒子模型的属性:width、height、margin 、margin-top、margin-right、marg原创 2022-07-02 16:23:20 · 101 阅读 · 0 评论 -
Excel批量数据拼接转换为oracle insert 插入语句
Excel批量数据拼接转换为oracle insert 插入语句使用excel 公式实现:使用最简单的,在要输入公式的单元格写上="",在双引号里面写入INSERT语句脚本,例如:&&中间,写上目标单元格的位置,这里是从第一列第二行开始,即&A2&,意思就是ONE的值就是A2单元格的值,第二列第三列的依次类推,最后把鼠标光标放到公式最后面,再按Enter键,这样第一行的公式就写好了。鼠标定位到公式单元格右下角,当鼠标成为黑十字,双击,即可此列后续行全部应用此公式。选中这列公式行,复制一下,粘贴到Note原创 2022-07-01 16:17:45 · 355 阅读 · 0 评论 -
HTTP和HTTPS那些事儿:状态码、版本、请求方式、加密解密~
常见http-status参考答案:1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。2XX系列:代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这系列中最常见的有301、302状原创 2022-06-30 20:42:53 · 623 阅读 · 0 评论 -
什么是Token,javascript 如何获取和禁用 cookie
什么是Token?js如何获取/禁用cookie假设cookie中存储的内容为:name=jack;password=123则在B页面中获取变量username的值的JS代码如下:使用cookiedocument.cookie = "name=value;expires=evalue; path=pvalue; domain=dvalue; secure;”name是必选参数,expires、path、domain、secure都是可选参数。expires=evalue 该对象的有效时间 只支持GTM原创 2022-06-29 09:56:33 · 1850 阅读 · 0 评论 -
前端两个重点:性能优化、安全
前端中有哪些可以优化的呢?主要分为以下几类:加载优化:减少HTTP请求、缓存资源、压缩代码、无阻塞、首屏加载、按需加载、预加载、压缩图像、减少Cookies、避免重定向、异步加载第三方资源。执行优化:CSS写在头部、JS写在尾部并异步、避免img、iframe等的src为空、避免重置图像大小、图像尽量避免使用DataURL。渲染优化:设置viewport、减少DOM节点、优化动画、优化高频事件、GPU加速。样式优化:避免在HTML中书写style、避免CSS表达式、移除CSS空规则、正确使用display原创 2022-06-28 12:52:07 · 1026 阅读 · 0 评论 -
浏览器垃圾回收机制
浏览器垃圾回收机制浏览器的 Javascript 具有自动垃圾回收机制(GC:Garbage Collection),也就是说,执行环境会负责管理代码执行过程中使用的内存。其原理是:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。但是这个过程不是实时的,因为其开销比较大并且GC时停止响应其他操作,所以垃圾回收器会按照固定的时间间隔周期性的执行。通常情况下有两种实现方式:标记清除和引用计数。引用计数不太常用,标记清除较为常用。js中最常用的垃圾回收方式就是标记清除。目前,IE9+、Fir原创 2022-06-28 10:44:53 · 2735 阅读 · 0 评论 -
WebSocket、event-source、AJAX轮询 等实现保持前后端实时通信的方式
实现保持前后端实时通信的方式这几种方式的优缺点1.WebSocket2. server-sent-event(event-source)3. AJAX轮询4.Flash Socket5. 永久帧( forever iframe)综合兼容性和用户体验的问题,我在项目中选用了WebSocket ->server-sent-event -> AJAX轮询这三种方式做从上到下的兼容(以上来源网络,仅供学习参考)...原创 2022-06-27 06:38:42 · 227 阅读 · 0 评论 -
说一下CSS浮动
什么是CSS浮动:特点:浮动可以使元素脱离文档流,不占用位置。可以将元素转换为行内块元素。作用:设置浮动的图片,可以实现文字环绕图片的效果。设置浮动的块级元素可以排列在同一行,设置了浮动的行内元素可以设置宽高,可以按照浮动设置的方向对齐排列。影响:脱离文档流后,父级盒子没有设置高度会塌陷,父级元素的后面兄弟元素会跟着受到影响。浮动元素的后面兄弟元素也会收到影响。清除浮动方法:· 伪元素清除浮动:给浮动元素父级增加。· overflow:hidden:给浮动元素父级增加overflow:hidden属性原创 2022-06-26 09:41:28 · 171 阅读 · 0 评论 -
实现 Eventemitter 类,有on、emit、off 方法
实现 Eventemitter 类,有on、emit、off 方法原创 2022-06-25 09:41:42 · 759 阅读 · 0 评论 -
【小程序源码】好玩多功能实用工具箱
看标题你们猜得不错,这就是一款由多个功能 组合的一款小程序源码功能可以说有好玩的,也有实用的,非常的不错UI也是特别的简单,让人看起来很舒服,也是特别的赞!功能列表有:测量尺子随机抽取图片转base64周公解梦垃圾分类查询号码解析特殊字符集合网易云评论浪漫情话舔狗日记随机笑话该小程序的功能具体就上面这些啦!好了下面来看看小编的测试演示图吧! 小程序源码下载地址:...原创 2022-06-24 19:11:06 · 161 阅读 · 0 评论 -
重温 JavaScript 系列(1):Object.assign、iframe、HashMap、手写 instanceof
Object.assign作用:Object.assign可以实现对象的合并。语法:for..of..: 它是es6新增的一个遍历方法,但只限于迭代器(iterator), 所以普通的对象用for..of遍历是会报错的。可迭代的对象:包括Array, Map, Set, String, TypedArray, arguments对象等等map,forEach 匿名函数中的this都是指向window,map()会分配内存空间存储新数组并返回,forEach()不会返回数据。使用静态类型的优势使用静态类型的劣原创 2022-06-24 12:42:45 · 171 阅读 · 0 评论 -
重温 JavaScript 系列(4):实现异步的方法、 promise实现文件读取、Promise的并发处理
回调函数(Callback)、事件监听、发布订阅、Promise/A+、生成器Generators/ yield、async/awaitasync/await函数对 Generator 函数的改进,体现在以下三点:在执行任务队列中任务,包括宏任务和微任务。 宏任务是指Event Loop在每个阶段执行的任务 微任务是指Event Loop在每个阶段之间执行的任务在node V8中,这两种类型的真实任务顺序如下所示:宏任务 Macrotask队列真实包含任务:注意:setTimeout 如果设置了大于0原创 2022-06-23 12:48:20 · 255 阅读 · 0 评论 -
JavaScript 设计模式:发布订阅
发布-订阅模式 又叫 观察者模式。 它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。 在JavaScript开发中,我们一般用事件模型来替代传统的发布订阅模式。①发布—订阅模式可以广泛应用于异步编程中,这是一种替代传递回调函数的方案。比如,我们可以订阅ajax请求的error、succ等事件。②可以取代对象之间硬编码的通知机制,一个对象不用再显式地调用另外一个对象的某个接口。 买房者收到售楼处发布的房源售卖通知。售楼处就是发布者,买房者就是订阅者,订阅的是售原创 2022-06-22 13:13:15 · 344 阅读 · 0 评论 -
vue3中,如何主动触发 element-plus 组件 el-autocomplete 的 fetch-suggestions 方法,达到刷新筛选结果效果?
不知道如何 主动触发 fetch-suggestions 方法? 那往下看就对了!vue3, 在使用 element-plus 的远程搜索,筛选结果的组件 el-autocomplete 时候,因为要用到搜索范围,所以使用了 前置的插槽 放置下拉选择组件 el-select。使用 autocomplete 组件范围有:标题、内容、所有。当每次切换范围的时候,需要重新请求后台并将结果,并重新显示出来,即重新触发一下组件的 fetch-suggestions绑定的方法。但是这个方法的参数有个cb回调函数,js无原创 2022-06-21 15:17:56 · 6906 阅读 · 2 评论 -
给mongoose find()/findOne()查询的结果添加额外的属性
在学习 mongoose 的时候,碰到一个需要注意的地方。给查询结果添加额外的属性时,不能直接在这个结果对象上添加属性。原因和解决方案往下看。假设 User 集合有一个 name 字段:(添加一些数据)加上它附带的 _id 字段,应该如下:当我查询结果之后,想要添加一个属性给每一个结果时候,神奇的一幕发生了!上面 (3) 输出的结果出乎我意料,和 (1) 的结果一模一样,没有发现 str 属性,我的 str 呢?(遇事不决,量子力学?)这当然不是量子问题。会不会是 这个 item 是只读原创 2022-06-20 12:47:03 · 829 阅读 · 0 评论 -
nodejs koa-generator 项目(koa2),配置 https 来监听https请求
Nodejs koa2项目怎么 配置 https 来监听https请求呢?项目根目录,在 /bin/www 文件中已有代码:在项目 /bin/www 文件中追加https服务:1、项目中下载 https 、koa-sslify 资源包,是配置 https 服务的前提:2、在 /bin/www 中, (1) 处添加如下代码:(添加https 服务需要有域名证书,获取证书的条件简单但繁琐,不是本次的主要内容,能看到这篇文章,说明你已经了解怎么获取了)3、如果需要自动将 http原创 2022-06-19 11:10:07 · 750 阅读 · 0 评论 -
HashRouter和 HistoryRouter的区别与原理
区别:原理:HashRouter的原理:通过window.onhashchange方法获取新URL中hash值,再做进一步处理HistoryRouter的原理:通过history.pushState 使用它做页面跳转不会触发页面刷新,使用window.onpopstate 监听浏览器的前进和后退,再做其他处理另外:hash模式下url会带有#,需要url更优雅时,可以使用history模式。需要兼容低版本的浏览器时,建议使用hash模式。需要添加任意类型数据到记录时,可以使用history模式。原创 2022-06-18 12:36:36 · 234 阅读 · 0 评论 -
javaScript 二叉树 若干算法题分析(下)
上文讲到二叉树的一些遍历和高度,今天讲讲二叉树的路径与价值问题。1、二叉树中和为某一值的路径给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n例如:思路:必须从根节点到每个叶节点,和值进行比较,如果存在某个分支和值相等,保存到最终结果。2、(较难)二叉树中最大路径和二叉树里面的路径原创 2022-06-17 13:20:03 · 206 阅读 · 0 评论 -
javaScript 二叉树 若干算法题分析(上
链、表、树、图……树在算法领域,可谓独霸一方,与之相关的问题千奇百怪。二叉树又是其中的典范,能延伸到 堆、AVL树、SB树、红黑树等等结构。走进这个世界,慢慢了解,你会收获到很多。本文先来一些简单的算法题,带你了解二叉树。二叉树前序遍历(先序遍历)给你二叉树的根节点 root ,返回它节点值的 前序 遍历。数据范围:二叉树的节点数量满足0≤ n ≤100 ,二叉树节点的值满足1≤ val ≤100 ,树的各节点的值各不相同思路: 根据递归的时机,可以很轻松知道 先序中序后序的切入点。求二叉树的层序原创 2022-06-16 13:39:40 · 170 阅读 · 0 评论