JavaScript学习要点(十三)

来源:互联网 发布:php时间戳代码 编辑:程序博客网 时间:2024/05/22 14:56
最简单的JSON数据形式就是简单值,字符串必须使用双引号

JSON与JS的对象字面量相比,首先没有声明变量,其次没有末尾的分号,对象的属性必须加双引号,属性的值可以是简单值,也可以是复杂类型的值

JSON数组采用的就是JS中的数组字面量形式,但没有变量和分号,数组可以与对象组合起来构成更复杂的数据集合

JSON对象有两个方法:stringify()和parse()分别用于将JS对象序列化为JSON字符串和把JSON字符串解析为原生的JS值

var book = {
                         title: “A”,
                         authors: [
                             “B" 
                         ],
                         edition: 3,
                         year: 2011
                    };
var jsonText = JSON.stringify(book);

实际上该函数还可以接收另两个参数,第一个参数是一个过滤器,可以是个数组,第二个参数是一个选项,表示是否在JSON字符串中保留缩进

如果传入的第二个参数不是数组而是函数,行为会稍有不同,它接收两个参数,属性名和属性值,函数的返回值就是相应键的值,通常用Switch(传进来的属性名),return 对属性值调用的某些方法

第三个参数是缩进空格数,最大为10,只要第三个参数有效,结果会自动包含换行符

JSON.parse()方法也可以接收另一个参数,将在每个键值对上调用

var bookCopy = JSON.parse(jsonTest,function(Key,value){
     if (key == “A”){
    
     }else{
    
     }
});


Ajax的技术核心是XMLHttpRequest,使用该XHR对象要调用的第一个方法是open(),接收三个参数:要发送的请求类型,请求的URL和表示是否异步发送请求的布尔值

xhr.open(“get”,“example.php”,false);
URL相对于执行代码的当前页面(也可以是绝对路径),二是调用open()方法并不会真正的发送请求,只是启动请求以备发送,比如还需要xhr.send(null);

send()方法接收一个参数,即要作为请求主体发送的数据,如果不需要则传入null

无论内容类型是什么,响应主体的内容都会保存到responseText属性中,对非XML数据而言,该属性为null

返回的状态码存储在xhr的status属性里

大部分时间发送的都是异步请求,此时可以检测XHR对象的readyState属性,该属性表示当前活动阶段

0:未初始化,尚未调用open()方法
1:启动,已open()但尚未send()
2:发送,已send()但尚未收到响应
3:接收,已经收到部分数据
4:完成,已经收到全部数据,可以在客户端使用

readyState每一次变化都会触发一次readyStatechange事件

overrideMimeType()被纳入XMLHttpRequest2级规范中,用来重写服务器返回的MIME类型,因为返回响应的MIME类型决定了XHR对象如何处理它,而且该方法的调用需在send()方法之前

进度事件有以下六个
loadstart progress error abort load loadend

0 0
原创粉丝点击