WEB 面试题(三) Ajax基础

本文介绍了AJAX的基础知识,包括其定义、作用、原理及优缺点。阐述了AJAX如何实现页面异步更新,以及XMLHttpRequest对象在其中的关键作用。同时,讨论了AJAX的请求方法、常见问题,如跨域解决方案,并对比了GET和POST请求的差异。
摘要由CSDN通过智能技术生成

44.什么是ajax?ajax作用是什么?
a.AJAX = 异步 JavaScript 和 XML。 
b.AJAX 是一种用于创建快速动态网页的技术。
c.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新
45.Ajax原理?
c.Ajax的原理就是:通过javascript的方式,将前台数据通过xmlhttp对象传递到后台,后台在接收到请求后,将需要的结果,再传回到前台,这样就可以实现不需要页面的回发,页是数据实现来回传递,从页实现无刷新 
d.Ajax的原理简单来说,实际上就是通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面
e.这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解
f.总结:我们可以看出,XMLHttpRequest对象完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,我们可以把服务器端看成一个数据接口,它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。这时候,XMLHttpRequest向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面
46.AJAX都有哪些优点和缺点
优点:
a.最大的一点是页面无刷新,用户的体验非常好
b.使用异步方式与服务器通信,具有更加迅速的响应能力。
c.可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
d.基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
缺点:
e.ajax不支持浏览器back按钮。
f.安全问题 AJAX暴露了与服务器交互的细节。
g.对搜索引擎的支持比较弱
h.破坏了程序的异常机制,不容易调试
47.AJAX技术体系的组成部分有哪些?
a.HTML
b.Css
c.Dom
d.Xml
e.XmlHttpRequest
f.JavaScript
48.请介绍一下XMLHttprequest对象
a.Ajax的核心是JavaScript对象XmlHttpRequest。
b.该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。
c.简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
d.通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。
49.介绍一下XMLHttpRequest对象的常用方法和属性
a.open(“method”,”URL”) ; 建立对服务器的调用,第一个参数是HTTP请求 方式可以为GET,POST或任何服务器所支持的您想调用的方式,第二个参数是请求页面的URL
b.send()方法,发送具体请求
c.abort()方法,停止当前请求
d.readyState属性 请求的状态 有5个可取值0=未初始化 ,1=正在加载2=以加载,3=交互中,4=完成
e.responseText属性 服务器的响应,此属性返回一个字符串响应数据
f.reponseXML 属性 服务器的响应,表示为XML
g.status 服务器的HTTP状态码,200对应ok 400对应not found
50.原生js ajax请求有几个步骤?分别是什么?
a.创建 XMLHttpRequest对象
var ajax = new XMLHttpRequest()
b.规定请求的类型、URL 以及是否异步处理请求
ajax.open(‘GET’,url,true)
c.发送信息至服务器时内容编码类型
ajax.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”)
d.发送请求
ajax.send(null);
e.接受服务器响应数据
ajax.onreadystatechange = function () {if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)){}}
51.ajax几种请求方式?他们的优缺点?
a.常用的post,get,delete put
b. 代码上的区别:
1:get通过url传递参数;
2:post设置请求头部规定请求数据类型
c. 使用上的区别:
1:post比get安全(因为post参数在请求体中。get参数在url上面)
2:get传输速度比post快 根据传参决定的(post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)
3: post传输文件大理论没有限制,get传输文件小大7-8k,ie4k左右
4:get获取数据post上传数据(上传的数据比较多 而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)
52.跨域解决方案有哪些?(扩展)
a.方案一原理:动态创建一个script标签。利用script标签的src属性不受同源策略限制。因为所有的src属性和href属性都不受同源策略限制。可以请求第三方服务器数据内容;
步骤1:去创建一个script标签
步骤2: 接口参数,必须要带一个自定义函数名 要不然后台无法返回数据
步骤3:通过定义函数名去接收后台返回数据
如图:
b.方案二原理:CORS跨域资源共享(服务器设置Access-Control-Allow-OriginHTTP响应头之后,浏览器将会允许跨域请求;限制:浏览器需要支持HTML5,可以支持POST,PUT等方法兼容ie9以上)
如图:
c.方向代理
window+iframe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值