Josn:
JSON是一种传输数据的格式(以对象为样板,本质就是对象,但用途有区别,对象就是本地用的,json是用来传输的
)
Josn.parse();string-------json
Json.stringify();json-----string
异步加载js
:
Js加载的缺点
:加载工具方法没必要阻塞文档,过的js加载会影响页面效率,一旦网速不好,那么整个网站将等待js加载而不进行后续渲染等工作。
有些工具方法需要按需加载,用到在加载,不用不加载。
Javascript异步加载的j几种方案
- Defer异步加载,但要等到dom文档全部解析完才会被执行。只有ie能用,也可以将代码写到内部。
- async异步加载,加载完就执行,async只能加载外部脚本,不能把js写在script标签里
- 执行时也不阻塞页面
- 创建script,插入到DOM中,加载完毕后callBack【回调函数】,
Onload页面加载完,后面才显示
- 创建document对象,开始解析web页面。解析HTML元素和他们的文本内容后添加Element对象和text节点到文本中。这个阶段document。ReadyState = ‘loading’。
- 遇到link外部css,创建线加载,并继续解析文档。
- 遇到script外部js,并没有设置async、defer,浏览器加载,并阻塞,等待js加载完成并执行脚本,然后继续解析文档。
- 遇到script外部js,并设置async、defer,浏览器创建线程加载,并继续解析文档。对于async属性的脚本,脚本加载完成后立即执行。(异步禁止使用document.write());
- 遇到img等,先正常解析dom结构,然后浏览器异步加载src,并继续解析文档。
- 当文档解析完成后,document。ReadyState = ‘interactive’.
- 文档解析完成后,所有设置defer的脚本会按照顺序执行。(注意与async的不同,但同样禁止使用document。write)
- Document对象触发DOMcontenLoaded【这个事件只在addEventListener上作用】事件,这也标志着程序执行从同步脚本执行阶段,转化为事件驱动阶段。当所有async的脚本加载完成并执行后,img等加载完成后,document。ReadyState = ‘complete’,window对象
- 从此,以异步响应方式处理用户输入、网络事件等