ajax1
1 AJAX 应用和传统 Web 应用有什么不同?
1 传统的javascript编程中,客户端想获得服务器数据库或文件上的信息,需要创建html表单,然后get或post数据,用户需要点击submit按钮来发送或接收数据,等待服务器的响应。页面会重新加载,页面服务器端每次都会返回一个新的页面。因此web应用可能很慢,并且用户交互不太好。
2 使用ajax技术,js通过xmlHttpRequest对象直接与服务器交互,通过http请求,web页面向服务器发送一条请求并接受响应(无需重新加载页面),返回给客户端的还是同一个页面。用户感到页面刷新,也看不到js后台发送请求和接收响应。
2 介绍一下 XMLHttpRequest 对象
通过XmlHttpRequest对象,web开发人员可以对加载的页面进行局部刷新。
3 ajax全称和调用流程
全称为asychronous js and xml;
2 首先创建xmlhttprequest对象,xmlhttp_request,
调用对象方法open('GET',url,true),send(null);
如果为true表示异步,js函数继续执行,不等服务器响应。
3 服务器响应需要告知http对象使用哪个js函数来处理
我们可以将对象属性设置为函数名:xmlhttp_request.onreadystatechange=FunctionName;注意没有();我们通常
xmlhttp_request.onreadystatechange=function(){// js代码 }
然后我们需要检查请求状态readyState(0 未初始化 1 正在装载 2装载完毕 3 交互中 4 完成) 只有当readyStatue==4 时,表示服务器端响应完整,函数才可以处理响应。
4 接着我们查看http响应状态值,status==200状态正常,可以处理接收的数据 text,xml ,json.
4 ajax send() 方法
post() 方式传参用,必须先设置 requestHeader
5 AJAX 的优缺点都有什么?
优点:
1 页面无需刷新,用户体验非常好
2 采用异步方式与服务器通信,具有更加迅速的响应能力
3 将以前一些服务器负担的工作转嫁到客服端,减轻服务器负担。
4 采用标准化并被广泛支持的技术,无需下载插件或小程序。
缺点
1 ajax不支持浏览器的回退按钮。
2 安全问题,ajax暴露了与服务器交互的细节。
3 对搜索引擎的支持比较弱
4 破坏了程序的异常机制。
5 不容易调试。
6 Ajax 和 javascript 的区别?
ajax是创建交互式网页应用的开发技术,它利用一系列相关技术,其中就包括js
js是一种浏览器端执行的脚本语言,与java没有任何关系,js的特效 1 控制文档的外观和内容 2 与html表单交互 3 与用户交互。
7 工作当中会和后台交互吗? 那你能说说封装好的 ajax里的几个参数吗 ?
1 url 请求的地址
2 type: 请求的方式 默认get
3 async : 默认true异步
4 timeout : 设置超时时间 单位ms
5 data: 为string 或 object类型的参数 ,发送到服务器的数据
6 cache : 修改为false禁用缓存
7 datatype: 预期服务器返回的数据类型
xml: 返回xml文档,可由jquery处理
html:返回纯文本html信息,其中的js标签,可在加入dom时执行。
script: 返回纯文本js代码,不会自动缓存结果。
json:json数据类型
jsonp:jsonp格式,使用jsonp调用函数时,列如myurl?callback=?,jquery会自动将第二个?替换为正确的函数名,以执行回调函数。
text: 返回纯文本字符串。
8 success:请求成功时调用的函数,两个参数
(1) 服务器返回的,经过datatype参数处理的数据
(2) 描述状态的字符串。
9 error: 要求为FUNCTION类型的参数,请求失败时调用的函数
(1)XmlHttpRequest对象
(2) 错误信息
(3) 捕获错误的对象(可选)
10 complete:function(XmlHttpRequest,status)//请求完成的最终执行参数。
8 json数据怎么处理 , 如果我发送一个请求 删除数据里的一条数据 我怎么知道删除成功了 或者说 删除后 会在哪里显示
JSON.parse() 转换为json对象,根据数据解析,放到页面中
格式: {}和[]拼接的json串
发送请求删除数据,后台返回处理结果,前台根据返回结果判断是否成功,然后处理页面元素。
9 有没有遇到过这种情况 在ie浏览器中 后台图片数据已经改变 但是客户端没有发生改变 该怎么处理? 他提示说浏览器的缓存
$ajax的cache,或使用post方式
10点击按钮向后台发起请求,将返回的数据直接输出,如果3秒内没有获得返回的数据则显示“请求超时,请重新提交”,写代码
var ajaxTimeoutTest = $.ajax({
url:'', //请求的URL
timeout : 3000, //超时时间设置,单位毫秒
type : 'get', //请求方式,get或post
data :{}, //请求所传参数,json格式
dataType:'json',//返回的数据格式
success:function(data){ //请求成功的回调函数
alert("成功");
},
complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数
if(status=='timeout'){//超时,status还有success,error等值的情况
ajaxTimeoutTest.abort();//终止请求
alert("超时");
}
}
});
11 你对于跨域请求了解多少?
同源策略规定如果访问时域名,协议,端口与发起请求的地方不一致时则被称为跨域请求,这时需要使用一些跨域请求技术。
1 利用jquery方法,使用jsonp模式访问。
datatype:'jsonp',并在url后传入callback=?,jquery会生成随机回调函数名称,或者你自己起名字。后台会获取callback的值,连接上() ,把数据放入(),传回页面,相当于调用function 名(data);
2 使用js标签方式
利用script标签src写想要访问的url,并连接上?callback=函数名。后台会获取callback的值,连接上() ,把数据放入(),传回页面,相当于调用function 名(data);
3 后台直接开启同源策略访问的限制,设置响应头信息
response.setHeader("Access-Control-Allow-Origin","*");
12 JS中有哪些数据类型?
六种 : null ,number,boolean,String,undefined,
Object [Array,Function,Date]