json,异步加载,时间线
JSON是一种传输数据的格式
JSON.stringify(obj); obj--string
JSON.parse(str); string-->obj
异步加载js好处:防止因为一个js中一个数据量加载错误,导致整个页面加载不出来。因此使用异步js不操作dom操作。加载工具js
异步加载js三种方法:
1、defer方法
等dom文档全部解析完才会被执行,只有IE浏览器能用该方法,可以引用外部js文件,也可以在里面直接写js代码。
代码:<script type="text/javascript" src = "tools.js" defer = "defer"></script>
2、async方法
只有IE9以下的浏览器不能用,只能加载外部js文件,不能在内部加载js。
代码:<script type="text/javascript" src = "tools.js" async= "async"></script>
3、常用方法,
js加载时间线
1、创建Document对象,解析web页面。此时:document.readyState="loading"
2、遇到link引入的外部css文件,创建线程加载。继续解析文档
3、遇到script引入的外部js文件,加载
4、加载js文档。并设置有defer 或 async 等设置,创建新线程,继续加载。(禁止使用document。write()方法)
5、遇到img ,先加载dom结构,后异步加载src,
6、当文档解析完后,document.readyState="interactive"
7、文档解析完之后,所设置的defer等脚本按顺序执行。
8、当所有加载执行后,document.readyState="complete" , window 触发onload事件。