05 2017 档案
摘要:从输入url到页面呈现的过程包括两个基本过程:网络通信和页面渲染 网络通信主要过程是 域名解析 -> TCP连接 -> HTTP请求 -> 服务端响应,返回HTML 页面渲染的主要过程是 下面是详细的过程 1.域名解析 a. 先从本地hosts文件中解析域名对应的IP b. 若上步中没有,则从远程D
阅读全文
摘要:优点 1. SEO 客户端渲染,页面中只有初始的几个html容器,js生成内容填充到容器中,爬虫只能识别到初始的html容器,js生成的内容一般不会被识别,而服务端渲染直接给出html,爬虫可以识别到所有内容 2. 首屏渲染性能 第一次加载过慢,很多客户端渲染的js有一定体积,得等到js加载解析完成
阅读全文
摘要:Sunday算法不像KMP算法那么复杂,但是效率又比较高,在KMP之上,下面简单介绍Sunday算法及其实现。 Sunday 算法由 Daniel M.Sunday 在 1990 年提出,它的思想跟 BM 算法很相似: 只不过 Sunday 算法是从前往后匹配,在匹配失败时关注的是文本串中参加匹配的
阅读全文
摘要:输入框focus后,键盘弹起会遮挡住输入框,解决方法有如下几种: 1.找到元素的顶部位置,页面滚动到元素顶部位置(有时页面高度不足,可能要添加padding-bottom,以保证页面滚动到指定元素后,用户能手动滑动到其他位置,可以使用click事件或focus和blur事件,来控制和解除行为) ze
阅读全文
摘要:在Web安全领域,常见的攻击方式有以下6种: 1、SQL注入攻击2、跨站脚本攻击 - XSS3、跨站伪造请求攻击 - CSRF4、文件上传漏洞攻击5、分布式拒绝服务攻击 - DDOS6、盗链 1. Sql注入 在发送到后端的参数中添加sql命令,使其拼接在sql语句中执行,以执行非法操作 比如: #
阅读全文
摘要:基本过程 1.创建一个空对象2.空对象的原型指向其构造函数的原型属性3.执行构造函数,且构造函数的this指向该对象4.判断构造函数返回值类型,若为值类型,返回空对象本身,若为引用类型,返回这个引用类型 例如,创建Person的实例
阅读全文
摘要:JavaScript采用的是词法作用域 1.词法作用域 即函数定义时,即确定的作用域。js中的作用域链,在函数声明时候,就已经确定了,无论函数在何处调用,其作用域变量的查找都是按照定义是包含关系去查找。 2.动态作用域 变量的作用域与函数的调用地点有关,在不同的函数中调用,变量的查找会沿着调用函数向
阅读全文
摘要:1.栈内存和堆内存 栈内存为自动分配的内存空间,由系统自动释放堆内存是动态分配的内存,大小不固定,也不会自动释放 js的值类型直接分配在栈内存中,引用类型分配在堆内存中引用类型变量保存的是引用类型的指针,指向堆中的真实引用类型 2.栈内存与堆内存的区别 栈内存数据直接使用,速度快堆内存存储空间大
阅读全文
摘要:现象总结如下: 1.JS的基本类型,是按值传递的。2.对于对象而言:分两种情况(a).如果传递给函数的参数是对象,并且修改了这个对象的属性(某些字段的值),那么奇妙的问题就来了。原参数就被修改了。(b).如果传递给函数的参数是对象,并且没有修改这个对象的属性的值,而是把对象作为一个整体来操作的话。原
阅读全文
摘要:1.小程序调用wx.login获取登录凭证code wx.login(无请求参数)返回code(有效期5分钟) 2.小程序通过code获取openid 向接口地址 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECR
阅读全文
摘要:web标准,简单的说,是指html,css,JavaScript三者的分离。 网页由三部分组成:结构,表现和行为。对应的标准分为三方面: 1.结构化标准语言XHTML和XML2.表现标准语言主要包括css3.行为标准主要包括对象模型(如W3C DOM)、ECMAScript等 web标准的优点 1.
阅读全文
摘要:1.单链表是否有环 使用快慢指针,都从head出发,慢指针一次一步,快指针一次两步,如果两个指针相遇,说明链表有环,否则,快指针为null或其next为null,到达末尾节点 2.单链表环的入口点 使用快慢指针,先判断是否有环,若有环,则慢指针从head出发,快指针与其同样的速度运行,直到相遇的一点
阅读全文
摘要:1.求节点数 2. 查找倒数第K个节点 3.查找中间节点 4. 合并两个有序链表为一个新的有序链表 5.判断两个单链表是否相交 6.求两个链表的第一个交点 7.反转链表 参考:http://blog.csdn.net/luckyxiaoqiang/article/details/7393134
阅读全文
摘要:双向链表的结构 双向链表的节点 双向链表的创建 尾插法 头插法 双链表的遍历 双链表的查找 双链表的删除 双链表的插入
阅读全文
摘要:单链表的删除,就是找到链表节点的前面一个节点,将其与待删节点的下一个节点连接,待删节点断链 另一种删除方法,已知链表的头节点和待删节点,将待删节点的值赋为下一个节点的值,如果节点为末尾节点(非null),则需找到其前面的节点,将其与待删节点断链 总体时间复杂度仍然为O(1)
阅读全文
摘要:单链表的基本结构 1.链表的创建 a.尾插法,就是正常的尾部顺序插入,从数组创建链表 function tailCreateList(aSrc){ var head = new Node(); pHead = head; aSrc.forEach((item) => { var node = new
阅读全文
摘要:1. 节点个数 2. 叶子个数 3. 第K层节点个数 4. 二叉树的最低公共节点,判断节点在左右两侧,则根节点(可能为子树根)为最小公共节点,否则在左子树或右子树中递归查找公共节点
阅读全文
摘要:方法一 计算每个节点的左子树和右子树的高度和,加上根本身(边数为2),取最大值 二叉树的最大距离,一定是经过根或者某个子树的根的路径,其两个端点必然是叶子节点或者根节点。计算二叉树的高度,并且比较经过该节点的最大距离,取 最大者。其中,getTreeDistance的起点是-1,其值为二叉树的高度减
阅读全文
摘要:1. 使用node-inspector(已过时) 使用npm安装: $ npm install -g node-inspector 然后需要通过浏览器连接到node-inspector,需要启动inspector服务: $ node-inspector & 最后以debug模式运行node.js应用
阅读全文
摘要:content-type 媒体类型,即MIME类型,包括媒体格式和编码两部分 例如:Content-Type:text/html;charset:utf-8 常见的媒体格式类型如下: text/html : HTML格式text/plain :纯文本格式 text/xml : XML格式image/
阅读全文
摘要:1. shell脚本的变量赋值 变量赋值语句中的等号左右不能有空格 即 a = 4 //错误 a=4 //正确 2. shell脚步的执行需要权限 chmod +x shell.sh ./shell.sh //执行shell脚本
阅读全文
摘要:当页面布局和几何属性改变时就需要"重排" 避免在修改样式的过程中使用 offsetTop, scrollTop, clientTop, getComputedStyle() 这些属性, 它们都会刷新渲染队列 最小化重绘和重排, 尽量一次处理a. 使元素脱离文档流(隐藏元素),进行处理后,再显示元素b
阅读全文
摘要:autoprefixer配置 // var aPostcss = [require('autoprefixer')({ browsers: ['ios>=3','android>=2','chrome>=4','firefox>=3'] })];var aPostcss = [require('au
阅读全文
摘要:二叉树的结构 二叉树的创建 二叉树的插入节点 二叉树的查找节点 二叉树的比较 清空二叉树 测试代码
阅读全文
摘要:最大高度 function getMaxHeight(root){ if(root == null) return 0; return 1 + Math.max(getMaxHeight(root.left),getMaxHeight(root.right)); } 最小高度 function ge
阅读全文
摘要:1. vue中获取dom节点时机 vue组件中获取dom节点一定要在mounted周期之后的下一次事件循环,包括 component.$refs,component.$el,component.$children等一般写法在nextTick中获取,mounted不是必须:mounted(){ thi
阅读全文
摘要:-webkit-overflow-scrolling: auto; /* 当手指从触摸屏上移开,滚动会立即停止 */ -webkit-overflow-scrolling: touch; /* 当手指从触摸屏上移开,会保持一段时间的滚动 */ 兼容性 Safari iOS 5.0+ -webkit-
阅读全文
摘要:1. 二叉树的深度优先遍历,使用栈Stack, DFS(Depth First Search) function DFS(root){ var stack = []; stack.push(root); var node = null; while(stack.length){ node = sta
阅读全文
摘要:方法1 filter和indexOf(能区分数字1和字符串‘1’): function unique(arr){ return arr.filter((item,index,array) => { return array.indexOf(item) >= index })} 方法2 循环加spli
阅读全文
摘要:javascript具有自动垃圾回收机制,即GC(Garbage Collection),垃圾回收器会按照固定的时间间隔周期性的执行垃圾回收。 垃圾回收有两种常见做法: 1. 标记清除(多数浏览器使用此策略,其执行GC的时间间隔不同) 当变量进入环境时候,例如,在函数中声明一个变量,就将此变量标记为
阅读全文
摘要:执行上下文(Execution context,简称EC) 概念 每当控制器到达ECMAScript可执行代码的时候,就进入了一个执行上下文。 javascript中,EC分为三种: 全局级别的代码(全局执行上下文) 函数级别的代码(函数执行性上下文) Eval的代码(eval执行上下文) 执行上下
阅读全文
摘要:1xx 临时响应 服务器已接收了客户端请求,客户端可继续发送请求 2xx 请求成功 200 请求正常 3xx 重定向 301 永久重定向,表示地址永久性转移到另一个地址。利于SEO,搜索引擎在抓取新内容的同时,页将旧的网址替换为 重定向之后的网址 302 临时重定向,一个地址需要短期变化时候使用,使
阅读全文
摘要:浏览器查找缓存的顺序 service workermemory cache (Tab页关闭,即失效,主要针对图片,样式等资源)disk cachepush cache(http2独有) 针对静态文件,动态文件需要 web server解析 浏览器缓存有强缓存,协商缓存和启发式缓存三种。 请求的基本过
阅读全文
摘要:1.二进制分帧 http1.x是文本格式传输,http2二进制格式传输,并且被切分未过个帧发送,帧可以根据头部流标识重新组装。 2. 单一长连接 同一个域名使用一个TCP连接,(http1.x 使用6-8个TCP连接,浏览器为减少消耗,进行的限制),无论请求多少个资源,能减少握手带来的延时,减少创建
阅读全文
摘要:webpack // 执行一次开发的编译 webpack -p // 针对发布环境编译(压缩代码) webpack -w(或--watch) // 进行开发过程持续的增量编译(飞快地!) webpack -d // 生成map映射文件,告知哪些模块被最终打包到哪里了 webpack --config
阅读全文