Ajax
1.Ajax 是什么? 如何创建一个 Ajax?
Ajax 并不算是一种新的技术,全称是 asychronous javascript and xml,可以说是已有技术的组合,主要用来实现客户端与服务器端的异步通信效果,实现页面的局部刷新,早期的浏览器并不能原生支持 ajax,可以使用隐藏帧(iframe)方式变相实现异步效果,后来的浏览器提供了对 ajax 的原生支持
使 用 ajax 原 生 方 式 发 送 请 求 主 要 通 过 XMLHttpRequest( 标 准 浏 览器).ActiveXObject(IE 浏览器)对象实现异步通信效果基本步骤:
var xhr =null;//创建对象 if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open(“方式”,”地址”,”标志位”);//初始化请求xhr.setRequestHeader(“”,””);//设置 http 头信息 xhr.onreadystatechange =function(){}//指定回调函数xhr.send();//发送请求 js 框架(jQuery/EXTJS 等)提供的 ajax API 对原生的 ajax 进行了封装,熟悉了基础
理论,再学习别的框架就会得心应手,好多都是换汤不换药的内容
2.****同步和异步的区别?
同步:阻塞的
-张三叫李四去吃饭,李四一直忙得不停,张三一直等着,直到李四忙完两个人一块去吃饭
=浏览器向服务器请求数据,服务器比较忙,浏览器一直等着(页面白屏),直到服务器返回数据,浏览器才能显示页面
-张三叫李四去吃饭,李四在忙,张三说了一声然后自己就去吃饭了,李四忙完后自己去吃
=浏览器向服务器请求数据,服务器比较忙,浏览器可以自如的干原来的事情(显示页面),服务器返回数据的时候通知浏览器一声,浏览器把返回的数据再渲染到页面,局部更新
3.****如何解决跨域问题?
理解跨域的概念:协议.域名.端口都相同才同域,否则都是跨域出于安全考虑,服务器不允许 ajax 跨域获取数据,但是可以跨域获取文件内容,所以
基于这一点,可以动态创建 script 标签,使用标签的 src 属性访问 js 文件的形式获取 js
脚本,并且这个 js 脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数,在回调函数中处理服务器返回的数据,这就是解决跨域问题的主流解决方案
4.****页面编码和被请求的资源编码如果不一致如何处理?
对于 ajax 请求传递的参数,如果是 get 请求方式,参数如果传递中文,在有些浏览器会乱码,不同的浏览器对参数编码的处理方式不同,所以对于 get 请求的参数需要使用
encodeURIComponent 函数对参数进行编码处理,后台开发语言都有相应的解码 api。对于 post 请求不需要
进行编码
5.****简述 ajax 的过程。
-
创建 XMLHttpRequest 对象,也就是创建一个异步调用对象
-
创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法.URL 及验证信息
-
设置响应 HTTP 请求状态变化的函数
-
发送 HTTP 请求
-
获取异步调用返回的数据
-
使用 JavaScript 和 DOM 实现局部刷新
6.****阐述一下异步加载。
-
异步加载的方案: 动态插入 script 标签
-
通过 ajax 去获取 js 代码,然后通过 eval 执行
-
script 标签上添加 defer 或者 async 属性
-
创建并插入 iframe,让它异步执行 js
7.****请解释一下 JavaScript 的同源策略。
同源策略是客户端脚本(尤其是 Javascript)的重要的安全度量标准。它最早出自
Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。所谓同源指的
是:协议,域名,端口相同,同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。
8.GET 和 POST 的区别,何时使用 POST?
GET:一般用于信息获取,使用 URL 传递参数,对所发送信息的数量也有限制,一般在
2000 个字符,有的浏览器是 8000 个字符POST:一般用于修改服务器上的资源,对所发送的信息没有限制
在以下情况中,请使用 POST 请求:
-
无法使用缓存文件(更新服务器上的文件或数据库)
-
向服务器发送大量数据(POST 没有数据量限制)
-
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
9.ajax 是什么?ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
-
通过异步模式,提升了用户体验
-
优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
-
Ajax 在客户端运行,承担了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载。
10. Ajax 的最大的特点是什么。
Ajax 可以实现异步通信效果,实现页面局部刷新,带来更好的用户体验;按需获取数据,节约带宽资源;
11.ajax 的缺点
1.ajax 不支持浏览器 back 按钮。
2.安全问题 AJAX 暴露了与服务器交互的细节。
3.对搜索引擎的支持比较弱。
4.破坏了程序的异常机制。
12.ajax 请求的时候 get 和 post 方式的区别
get 一般用来进行查询操作,url 地址有长度限制,请求的参数都暴露在 url 地址当中,如果传递中文参数,需要自己进行编码操作,安全性较低。
post 请求方式主要用来提交数据,没有数据长度的限制,提交的数据内容存在于 http
请求体中,数据不会暴漏在 url 地址中。









网友评论