Ajax与JSON

145 阅读2分钟

什么是Ajax

Asynchronous JavaScript And XML(异步JS和XML):js发请求和收响应。

Ajax的优缺点

优点:

  • 异步模式,提升用户体验
  • 优化浏览器及服务器之间的传输,减少不必要的数据往返,减少带宽占用
  • AJax引擎在客户端运行,承担了部分本来由服务器承担的工作,从而减少大用户量下的服务器负载

缺点:

  • 不支持浏览器back按钮
  • 安全问题:暴露了与服务器交互的细节
  • 对搜索引擎的支持比较弱
  • 破坏了程序的异常机制
  • 不易调试

Ajax的使用

创建XMLHttpRequest对象

const request = new XMLHttpRequest()

调用对象的open方法

request.open('GET','./文件名')

监听对象的onreadystatechange事件

request.onreadystatechange = () =>{}

调用对象的send方法(发送请求)

request.send()

onreadystatechange事件

每当readyState改变时,就会触发onreadystatechange事件。 onreadystatechange储存函数,每当readyState属性改变时调用;readyState储存XHR的状态;

readyState属性:
    0:请求未初始化    //const request = new XMLHttpRequest()
    1:请求连接已建立  //request.open('GET','./文件名')
    2:请求已接受      //request.send()
    3:请求处理中      //第一个出现在浏览器上
    4:请求已完成,响应就绪    //下载完成
  
status:
    200:OK
    404:未找到页面

status:HTTP状态码
    1xx(临时响应):表示临时响应并需要请求者继续执行操作
    2xx(成功):表示成果处理了请求
    3xx(重定向):表示要完成请求需要进一步操作,通常用于重定向
    4xx(请求错误):表示可能出错,妨碍了服务器的处理
    5xx(服务器错误):表示服务器在尝试处理请求时发生内部错误,这些错误可能是服务器本身的错误,而不是请求出错
getJson.onclick = () =>{
    const request = new XMLHttpRequest()
    request.open('GET','/5.json')
    request.onreadystatechange =() =>{
        if(request.readyState === 4){
            if(request.status >= 200 && request.status < 300){
                const object = JSON.parse(request.response)
                console.log(object)
                myName.textContent = object.name
            }
        }
        
    }
    request.send()
}

什么是JSON

JSON(JavaScript Object Notation)js对象标记语言。

JSON语法格式

{"name": "Jom"}
{"age": "3"}
{"sex": "男"}

JSON支持类型

String
Number
Object
Array
true
false
null

转化

JSON.parse()     把符合JSON的转成js对应类型的数据

JSON.stringify   js数据转成JSON字符串

JSON具体语法可参考 json.org/json-zh.htm…