json
Josn:
JSON是一种传输数据的格式(以对象为样板,本质就是对象,但用途有区别,对象就是本地用的,json是用来传输的
)
Josn.parse();string-------json
Json.stringify();json-----string
其实简单那来说json就是一种转变的工具吧,就像你在获取数据还是发送,你需要将数据类型改变或者传输什么样,你就可以改变用它。
举个很简单的列子:在使用Ajax获取数据的时候,你可能会获取的数据类型你看不懂,但是那个数据确实又是你要的内容,但是可能是字符串之类的格式显示的,这个时候你就可以用json去转变它你看的懂格式,列如这个数据data,然后你就可以使用json.parse去转换他为文字形式展示。
俗称:json就是转化器和解析器异步加载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对象
从此,以异步响应方式处理用户输入、网络事件等
js加载时间线,我举个很简单易懂的列子,就是,都用过淘宝吧,淘宝下面不是很多内容吗,就是滚动条很长吗,如果你只是单纯想看上面的内容,不需要下面的内容,这个时候你就可以使用异步加载,就是等待你需要下面内容,下滑的时候,下面在加载,当你不下滑的时候,他就是处于预加载状态,这个时候性能稍微都强一些,加入你不需要下面的内容,但是又把下面的那内容加载了,那样很耗费性能,就是网页可能会很卡,但是你将这种情况设置为预加载 的状态,那样既不耗费性能也加载的很流畅,但是这个也是有缺陷的,比如你网卡,不很好,页面可能就会出现的不是很完美,就是有部分的渲染缓冲不出来,像那个网页显示的内容有很多效果,列如什么轮播,文字炫彩,但是你网络不佳的时候,就只是单纯的静态效果,或者很普通的效果,并没有你做的那些特效
- 点赞
- 收藏
- 关注作者
评论(0)