JSON
- JSON是一种传输数据的格式(以对象为样板,本质上就是对象,但用途有区别,对象就是本地用的,json是用来传输的)
- JSON.parse();string --> json
- JSON.stringify();json --> string
json ---> '{
'name':"123",
'age':12,
}'
JSON中规定属性名必须加个双引号 与对象不同
如果要将json数据传给后端,需要是一个字符串类型
var obj = {
name : 'abc',
age : 123
}
JSON.stringify(obj)
使用JSON.stringify()方法就能够把JSON类型的数据转化为字符串
JSON.stringify(obj)
当后端传入了一个字符串类型的JSON格式数据 可以通过JSON.stringify(obj)方法把这个字符串转成json格式。
异步加载js
- js加载的缺点:加载工具方法没必要阻塞文档,过得js加载会影响页面效率,一旦网速不好,那么 整个网站将等待js加载而不进行后续渲染等工作。
- 有些工具方法需要按需加载,用到再加载,不用不加载。
js阻断html和css加载线的原因:
因为js会修改html和css
异步加载JavaScript的三种方案:
- 1 defer 异步加载,但要等到dom文档全部解析完才会被执行。只能ie用,也可以将代码写到内部。
在script标签内部加一个 defer = “defer” / defer
- 2 async 异步加载,加载完就执行,async只能加载外部脚本,不能把js卸载script标签里。
在script标签内部加一个 async= “async” / async
- 1 2 执行时不会阻塞页面
- 3 创建 script ,插入到dom中,加载完毕后callBack
创建一个script标签,当我们需要加载的时候再把它放到页面中。通过document.head.appendChild(script);
注意:
如果不使用document.head.appendChild(script);那么tools.js只会下载不会被放入html,
也就不会加载到页面上。
script.onload = function(){
}
script.onload方法而已保证 ,js文件加载完之后再执行。
封装完的函数:
function loadScript(url,callback){
var script = document.createElement('script');
script.type = "text/javascript";
if(script.readyState){
script.onreadystatechange = function (){//IE
if(script.readyState == 'complete' || script.readyState == 'loaded'){
eval(callback);
callback()
}
}
}else{
script.onload = function(){//Safari chrome firefox opera
eval(callback);
}
}
script.src = url;
document.head.appendChild(script)
}
loadScript('demo.js',test)