赞
踩
本文主要内容:
AJAX即一种异步请求,可以实现页面局部刷新;
function
使用方法:
Ajax
优点:
缺点:
0 - open方法还没调用
1 - 已经调用send方法,正在发送请求
2 - send方法已经完成,已经接收到全部相应内容
3- 正在解析相应内容
4 - 相应内容解析完成
200 - 成功
404 - 未找到
5** - 服务器错误
GET和POST是HTTP请求的两种方式;
get: 缓存/长度受限(2M)/无副作用(不修改资源)/幂等的场景(请求数据与资源无关)
post: 安全/长度无限制/支持更多编码类型(ACII & 二进制)
关于安全方面,其实GET和POST两者都不安全。
虽然POST请求的数据不携带在URL上,但是因为HTTP在网络传输的时候是明文传输的,所以,只要使用抓包工具,能轻而易举的获取数据;
想要安全传输,只有加密,可以前端将传输参数进行加密,也可以才用HTTPS;
端口号、域名、协议名,三者必须全部相同才符合同源策略,反之即为跨域;
原理:动态生成script标签,利用script不受跨域的限制,但是缺点是只支持get请求;
封装JSONP方法:
function
2. postMessage
3. WebSocket
4. iframe
先解释一个概念:
线程(Thread):线程是进程的一部分,并且执行进程中的一部分程序;
进程 (Process):启动一个程序,就会创建一个进程,操作系统为其分配内存,进程中的所有线程中的所有程序状态都保存到该内存中,关闭程序,进程也会消失,内存会释放;
下面这个图很形象:
不同浏览器中的架构不同:
Chrome 就是属于多进程之间进行通信,现在是为每个标签创建一个进程,正在尝试为每个站点提供自己的进程;
Chrome浏览器为了节省内存,对进程的数量做了限制,这个因内存和CPU功率而定;
当达到这个限制的时候,浏览器会在同一进程中运行从同一站点打开的多个选项卡;
2. 当Chrome浏览器遇到更强大的硬件时,会将每个服务拆分成不同的进程,从而提供更高的稳定性;但是如果资源有限的设备上,会将服务整合到一个进程中,从而节省内存。Android上已经实现了服务的整合;
下图形象的展示了浏览器的组成:
浏览器解析文档的过程中,
如果遇到script标签,会立即解析脚本,停止解析文档(因为JS可能会改变DOM和CSS,如果继续解析会造成浪费)。
如果是外部script, 会等待脚本下载完成之后在继续解析文档。现在script标签增加了defer和async属性,脚本解析会将脚本中改变DOM和css的地方解析出来,追加到DOM Tree 和 Style Rules上
回流(reflow):当页面发生重新布局的过程。元素的几何尺寸发生变化时,需要重新计算节点信息,也就是执行了渲染步骤的第4步;
重绘(repaint):屏幕的一部分需要重新绘制,比如css背影色变化,颜色变化等。
回流比重绘成本高的多得多;
举例说明
$
但是浏览器不会像上边那样,每改一次样式都会重新reflow和repaint一次。一般来说,浏览器会把这样的操作积攒一波,然后reflow一次。
基于对渲染过程的了解,推荐一下优化:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。