JavaScript之防抖节流
## JavaScript之防抖节流
我记得比软设的时候师兄问有没有使用防抖函数或节流函数,当时了解但是没用,过了将近一年,有些知识都忘了,痛定思痛,赶紧补上。
防抖函数(debounce)在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。
这个描述就可以知道他的使用场景:输入框校验,手机号、邮箱验证输入检测,防误触
防抖一般情况下,我们肯定是和Ajax结合,用于和后端进行数据交互,如果频繁的发起Ajax请求,那么无疑会造成很多资源上的浪费
123456789101112131415161718192021222324<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>防抖节流 ...
JavaScript:sort()排序不正确
在JavaScript中,数组使用sort()后发现有排序不正确的情况排序前var a = [10,6,6,10,10,9,8,8,3,3,8,2,1,5,1,9,5,2,7,4,7,7]排序后很明显排序不正确查阅资料后,数组元素首先会被转换为字符,例如1变成"1",之后会根据Unicode编码的顺序来进行排序,所以这就是为什么10排到了2前面解决方法是,指定好compareFunction
12345678910a.sort(function (a,b) { if (a < b ) { return -1; } if (a > b ) { return 1; } // a must be equal to b return 0; });
这样排序后就没有问题了
JavaScript内存管理解释
JavaScript内存管理解释很多时候,对于JavaScript开发者可能对内存管理毫无了解,毕竟JavaScript引擎帮你解决了这个问题
从一方面来说,你会遇到类似于内存泄露的问题,只有你知道内存是怎么样工作的,你才能解决这个问题
在这篇文章,我会向你介绍如何分配内存和垃圾处理,同时,如何去避免普通的内存泄露
内存生命周期在JavaScript中,当我们创建一个变量,函数,或者任何一个你可以想到的数据类型,JS引擎会为这些分配内存,当你再也不使用这些数据类型时,JS引擎会释放掉这些内存
内存分配是在内存中保留空间的过程,在释放内存的同时释放空间,以便用于其他目的。
每次我们分配一个变量或者创建一个函数,内存总是经过以下几个相同的状态
分配内存
JavaScript非常照顾我们:他为我们创建的对象进行内存分配
使用内存
使用内存是我们在代码中明确做的事情:读和写对于内存而已不过是对变量的读写
释放内存
这一步同样是JavaScript引擎帮我们处理好了的。一旦分配的内存被释放了,释放出来的内存可以被用作新的目的
在内存管理上下文中,对象不仅包括JS对象,还包括函数和函 ...
Sass(Scss)简单认识
Sass(Scss)简单认识我个人平时比较常使用的是Less,但是公司前端开发是在Vue中用Sass,为了统一一下语言,所以学习一下Sass。
简单介绍Sass和Less一样是Css的预处理器,相比于Css需要重复写大量重复的样式,Sass和Less的好处可以节省大量重复的代码操作,可以通过嵌套样式代码,父子节点之间的关系更加明确,同时还有引入变量,循环,函数等
Sass Or Scss其实在官网显示的是sass,但是我们在vue中通常写的是lang = 'scss',其实两个比没有太大的区别,简言之可以理解scss是sass的一个升级版本,完全兼容sass之前的功能,又有了些新增能力。语法形式上有些许不同,最主要的就是sass是靠缩进表示嵌套关系,scss是花括号。
联系平台https://www.sassmeister.com/(可以在线将sass转换成css)
基本用法变量变量声明用$,优先使用的是局部变量
1234567$n: 10;p{ $i: 100px; $n: 1000px; width: $n px; height: $i p ...
Syn_Flood 泛洪攻击
Syn_Flood 泛洪攻击什么是泛洪攻击Syn-Flood攻击是当前网络上最为常见的DDoS攻击,也是最为经典的拒绝服务攻击,它利用了TCP协议实现上的一个缺陷,通过向网络服务所在端口发送大量的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其他合法用户进行访问。
在TCP连接的时候需要进行三次握手
那么泛洪攻击就是利用三次握手中最后一次的确认握手来发起攻击
攻击者先伪造地址对服务器发起连接请求,服务器收到请求后会返回确认ack,给真正的地址客户端,真正的地址客户端其实并没有发起请求,所有他不会理服务器的确认ack,因为服务器没有收到客户端的确认ack,所有他会一直重发请求,造成资源上的浪费。
如果攻击者大量发送这种伪造源地址的SYN请求,服务器端将会消耗非常多的资源来处理这种半连接,保存遍历会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。TCP是可靠协议,这时就会重传报文,默认重试次数为5次,重试的间隔时间从1s开始每次都番倍,分别为1s + 2s + 4s + 8s +16s = 31s,第5次发出后还 ...
VUE报错Uncaught TypeError:__WEBPACK_IMPORTED_MODULE_0_jquery___default(...)(...).niceScroll Is Not a Function
VUE报错Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_0_jquery___default(…)(…).niceScroll is not a function
在vue项目里报了这个错,原因是我想在这个地方初始化时,利用一下一下jq的美化滚动条
报错原因我在mounted里面写的美化滚动条解决方法应该在外部js写好,在vue中引用
Css居中方式
html结构比较简单
1234567<body> <div class="outer"> <div class="inner"> </div> </div></body>
水平居中1.margin
12345678910111213141516*{ padding: 0; margin: 0; } .outer{ width: 400px; height: 400px; background-color: red; margin: 0 auto; } .inner{ width: 200px; height: 200px; background-color: blue; margin: 0 auto; }
2.text-align+display
123456789101112.outer ...
First-of-Type失效(对first-of-Type的错误理解)
今天遇到了一个问题
123456789101112131415<div class="main"> <div class="xxx"></div> <div class="box"> aaa <div class="box1"> ddd </div> </div> <div class="box"> bbb </div> <div class="box"> ccc </div> </div>
如何选中.main中的第二个box首先不能使用:first-child,因为在.box前面有一 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
Html+css+js_坚持30s小游戏
坚持30s小游戏用到:
弹性运动
拖拽事件
碰撞检测
定时器清除
单对象编程
123456789101112131415161718<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="./css/consist30s.css"></head><body> <span>游戏马上开始</span> <div class="outer"> ...