自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 web安全之XSS和CSRF

XSSXSS 简单点来说,就是攻击者想尽一切办法将可以执行的代码注入到网页中。分为反射型和持久型反射型XSS代码出现在URL中,服务端解析响应后,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。img标签 src为空 onerror持久型持久型也就是攻击的代码被服务端写入进数据库中,比如用户提交评论,将包含XSS代码的内容提交,然后服务端将内容保存数据库中。之后其...

2019-02-09 17:01:33 8241 1

原创 简单promise的实现

const PENDING = 'pending' const RESOLVED = 'resolved' const REJECTED = 'rejected' function MyPromise(fn) { const that = this that.state = PENDING tha...

2019-02-17 22:34:30 218

原创 vue响应式(双向绑定)原理

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &l

2019-02-17 17:14:52 310

原创 vue路由实现原理

路由需要实现的功能1.改变url且不让浏览器向服务器发出请求;2.监测 url 的变化;3.截获 url 地址,并解析出需要的信息来匹配路由规则。前端目前只有2种模式1.hash模式(IE8)用a标签或者window.location.hash设置哈希值。window.addEventListener('hashchange', () => { // ... 具体逻辑//...

2019-02-10 16:31:27 474

原创 函数节流

demo1onresize事件的函数节流function trottle(method,context){ clearTimeout(method.tId) method.tId = setTimeout(function(){ method.call(context) },16)}function resizeDiv() { var div = document....

2019-02-09 18:09:16 170

原创 强缓存和协商缓存

强缓存强缓存是利用http头中的Expires和Cache-Control两个字段来控制的。强缓存中,普通刷新会忽略它,但不会清除它,需要强制刷新。浏览器强制刷新,请求会带上Cache-Control:no-cache和Pragma:no-cacheno-cache和no-store的区别no-cache 可以在本地缓存,可以在代理服务器缓存,但是这个缓存要服务器验证才可以使用 (协商缓存...

2019-02-09 17:22:35 1227

原创 http常见头部字段

通用首部字段1.请求指令cache-control : no-cache no-store max-age响应指令cache-control : no-cache no-store max-age s-maxage public private2.connection: keep-alive close3.Date 首部字段 Date 表明创建 HTTP 报文的日期和时间。请求首部字段...

2019-02-09 17:02:28 5652

原创 vue用watch监听表单数据变化

Demo<template> <div class="login"> <div class="login-header"> <router-link to="/"> <span class="iconfont back-ico">&

2019-02-09 13:23:34 20693

转载 vue中name组件的作用

我们在写vue项目的时候会遇到给组件命名这里的name非必选项,看起来好像没啥用处,但是实际上这里用处还挺多的export default {name:‘xxx’}1231.当项目使用keep-alive时,可搭配组件name进行缓存过滤举个例子:我们有个组件命名为detail,其中dom加载完毕后我们在钩子函数mounted中进行数据加载export default {n...

2019-01-29 13:26:19 339

原创 查漏补缺(一)关于类型

在 JS 中,存在着 6 种原始值,分别是:booleannullundefinednumberstringsymbol原始类型存储的都是值,是没有函数可以调用的,比如 undefined.toString()但是’1’.toString() 是可以使用的。其实在这种情况下,‘1’ 已经不是原始类型了,而是被强制转换成了 String 类型也就是对象类型,所以可以调用 toStri...

2019-01-10 17:01:19 182

转载 mongodb入门

前面的话  Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具。本文将详细介绍如何使用Mongoose来操作MongoDBNodeJS驱动  在介绍Mongoose之前,首先介绍使用NodeJS操作MongoDB的方法如果使用程序操作数据库,就要使用MongoDB驱动。MongoDB驱动实际上就是为应用程序提供的一个接口,不同的语言对应不同的驱动,Nod...

2019-01-07 21:21:09 327

转载 redis缓存作用

有人说互联网用户是用脚投票的,这句话其实也从侧面说明了,用户体验是多么的重要;这就要求在软件架构设计时,不但要注重可靠性、安全性、可扩展性以及可维护性等等的一些指标,更要注重用户的体验,用户体验分很多方面,但是有一点非常重要就是对用户操作的响应一定要快;怎样提高用户访问的响应速度,这就是摆在架构设计中必须要解决的问题;说道提高服务的响应速度就不得不说缓存了;从系统的层面说,CPU的速度远远高于磁...

2019-01-07 19:04:47 5306

原创 element-ui rules

//required为true则不能为空//type 是输入框value的类型//message是错误提醒//trigger是什么时候出发//validator是自定义 rules:{ name:[{required:true,type:'string',message:'请输入昵称',trigger:'blur'}], email:[{required:true...

2019-01-07 18:36:36 1375

原创 crypto-js使用

//第一步,引入<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script>//加密实例一 console.log("加密结果一 MD5:"+CryptoJS.MD5("你好")); //加密实例二 var pwd="passwor"; c

2019-01-07 18:34:17 17200 1

转载 前端性能优化

HTTP是一种客户端/服务器协议,由请求和响应构成。浏览器向一个特定的URL发送HTTP请求,URL对应的宿主服务器发回HTTP响应。该协议使用简单的纯文本格式。请求的类型有GET、POST、HEAD、PUT、DELETE、OPTIONS和TRACE。前端性能优化十四个规则:1.减少HTTP请求。a. 至少80%的最终用户响应时间花在了页面中的组件(图片、脚本、样式表、Flash等...

2019-01-05 01:17:50 133

原创 JS实现数组去重的六种方式

1.ES6 set去重function uniq(arr){ var a=new Set(arr); var b=[...a]; return b}var aa = [1,2,1,4,3,3,2,4,6,7,7,7,7,7,7,7,7];console.log(uniq(aa));2.indexOf去重function uniq(arr){ var temp...

2019-01-05 01:15:22 494

原创 跨域通信的几种方式

1.JSONP(JSONP只支持GET请求)jsonp就是动态创建script标签,用script标签中的src进行请求。在src中指定访问的地址并且加上要请求的数据和指定一个本地的回调函数名,让后台把数据作为这个函数的参数传过来。请求成功后再把script标签删了。优点:2.可以跨越同源策略缺点:只能GET不能POSTJSONP的优缺点1.优点1.1它不像XMLHttpRequest...

2019-01-05 01:12:52 1402

原创 两边固定,中间自适应布局

1.浮动,先左右再中.left{ float: left; width: 300px; height: 100px; background: #000;} .right{ width: 300px; height: 100px; float: right; background: pink; } .main{ ...

2019-01-05 01:08:42 999

原创 JS实现堆排序

堆排序let arr=[2,4,5,6,6,4,3,0,21,213,65];/*[1][2,1][4,1,2][6,4,2,1][6,4,5,1,3,2]* */console.log(heapSort(arr));function heapSort(arr) { //1.先变成大根堆 for (let i =0;i<arr.length;i++){/...

2019-01-05 01:04:09 282

原创 JS实现插入排序

//最好,完全有序O(N) 最坏O(N2)function function_name(arr) { if (arr.length<2) { return arr; } for (var i=1;i<arr.length;i++){ for (var j=i-1;j>=0&&arr[j]>arr[...

2019-01-05 01:01:52 293

原创 JS实现快排、三路快排、随机快排

先看一个问题设计一个方法,实现小于num的在数组左边,等于num的在中间大于num的在数组右边function partition(arr,L,R,num) { let less=L-1; let more=R+1; let idx=L; for(;idx<more;){ if (arr[idx]<num){ ...

2019-01-05 01:00:52 869

原创 JS实现冒泡排序

// 时间复杂度O(N2); //前后两个数组比较,数字大的向后移动,这样最大的数字就在最后。再次比较0~n-1的数 function function_name(arr) { if (arr.length<2) { return arr; } for (var end = arr.length -...

2019-01-05 00:56:37 431

原创 JS实现选择排序

//时间复杂度O(N2) //0~n 找一个最小的放到0位置// 1~n位置找一个最小的放到1位置 以此类推 function selectSort(arr) { if (arr.length<2) { return arr; } for (var i = 0;i<arr.length;i++){ var minI...

2019-01-05 00:55:21 310

原创 git 恢复分支的操作

回复删除分支的方法1.git reflog找到散列值例如$ git reflog257b4df (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: checkout: movingfrom menu to master6272f48 (origin/menu, menu) HEAD@{1}: commit: menu-li...

2019-01-05 00:52:51 2085

转载 VScode格式化ESlint-方法(最全最好用方法!)

ESlint:是用来统一JavaScript代码风格的工具,不包含css、html等。背景:近来研究前端,然后一直在百度上找VScode格式化(ESlint)的插件,结果找了半天都不靠谱。目前没有一个可以格式化html、css、符合ESlint的js、vue的插件,所以自己东拼西凑加实践找到解决方法。解决方案:1、安装插件1)ESlint:javascript代码检测工具,可以配置每次保...

2019-01-03 16:37:20 2402

原创 nuxt.js 安装配置babel

先在package.json文件的scripts下面的dev和start加上–exec babel-node例如"scripts": { "dev": "cross-env NODE_ENV=development nodemon server/index.js --watch server --exec babel-node", "build": "nuxt build",...

2019-01-03 15:18:13 8009 4

原创 'babel-node' 不是内部或外部命令,也不是可运行的程序

'babel-node' 不是内部或外部命令,也不是可运行的程序执行cnpm i babel-core babel-preset-es2015 babel-cli

2019-01-03 15:13:31 13170 2

空空如也

空空如也

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

TA关注的人

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