ajax是什么?

1、ajax是什么?如何创建一个ajax?

ajax并不算是一种新的技术,全称是asynchronous javasript and xml,可以说是已有技术的组合,主要用来
实现客户端服务器的异步通信效果,实现页面的局部刷新,早期的浏览器并不能原生支持ajax,可以使用
隐藏帧(iframe)方式变相实现异步效果,后来的浏览器提供了对ajax的原生支持。

使用ajax原生方式发送请求主要通过XMLHttpRequest(标准浏览器)、ActiveXObject(IE浏览器)对象实现
异步通信效果。

//ajax编写步骤
// 1、创建XMLHttpRequest对象
    var xhr = new XMLHttpRequest();
// 2、设置请求参数
    xhr.open(请求方式,请求地址,异步或同步);
// 3、设置回调函数
    xhr.onreadystatechange = function(){
        if(xhr.reasyState===4){
            if(xhr.status === 200) {
                //5、接受响应
                console.log(xhr.responseText);
            }
        }
    }
// 4、发送请求
    xhr.send();

2、同步和异步的区别?

同步:浏览器向服务器请求数据,服务器比较忙,浏览器一直等着(页面白屏),直到服务器返回数据,
浏览器才能显示页面。

异步:浏览器向服务器请求数据,服务器比较忙,浏览器可以自如的干原来的事情(显示页面),服务器返回
数据的时候通知浏览器一声,浏览器把返回的数据再渲染到页面,局部更新。

3、如何解决跨域问题?
理解跨域的概念:协议、域名、端口都相同才同域,否则都是跨域。

出于安全考虑,服务器不允许ajax跨域获取数据,但是可以跨域获取文件内容,所以基于这一点,可以动态
创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数
调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数,
在回调函数中处理服务器返回的数据,这就是解决跨域问题的主流解决方案。

4、请解释一下javaScript的同源策略
同源策略是客户端脚本的重要安全度量标准,所谓同源指的是:协议,域名,端口相同,同源策略是一种安全
协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。

5、GET和POST的区别,何时使用POST?
GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符,有的浏览器
是8000个字符。

POST:一般用于修改服务器上的资源,对所发送的信息没有限制。

以下情况中,请使用POST请求:
①、无法使用缓存文件(更新服务器上的文件或数据库)
②、向服务器发送大量数据(POST没有数据量限制)
③、发送包含未知字符的用户输入时,POST比GET更稳定也更可靠。

6、ajax的最大特点是什么?
 ajax可以实现异步通信效果,实现页面局部刷新,带来更好的用户体验;按需要获取数据,节约带宽资源。

7、ajax的缺点?
①、ajax不支持浏览器back按钮。
②、安全问题ajax暴露了与服务器交互的细节。
③、对搜索引擎的支持比较弱。
④、破坏了程序的异常机制。

8、解释jsonp的原理,以及为什么不是真正的ajax?
jsonp并不是一种数据格式,而是json是一种数据格式,jsonp是用来解决跨域获取数据的一种解决方案,
具体是通过动态创建script标签,然后通过标签src属性获取js文件中的js脚本,该脚本的内容是一个函数
调用,参数就是服务器返回的数据,为了处理这些返回的数据,需要事先在页面定义好回调函数,本质上使用
的并不是ajax技术。

9、HTTP状态码都有哪些?  
200 OK 客户端请求成功
301 资源(网页等)被永久转移到其他URL
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源部存在,输入了错误的URL
500 Internal Server Error 服务器发生不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

10、为什么利用多个域名来存储网站资源会更有效?
确保用户在不同地区能用最快的速度打开网站,其中某个域名崩溃用户也能通过其他域名访问网站,并且不同
的资源放到不同的服务器上有利于减轻单台服务器的压力。

什么是AJAX,为什么要使用Ajax

什么是ajax:

AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。

Ajax包含下列技术:
基于web标准(standards-basedpresentation)XHTML+CSS的表示;
使用 DOM(Document ObjectModel)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操作;
使用 XMLHttpRequest 进行异步数据查询、检索;
使用 JavaScript 将所有的东西绑定在一起。

为什么要用ajax:
Ajax应用程序的优势在于:
1. 通过异步模式,提升了用户体验
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

2、AJAX最大的特点是什么。
Ajax可以实现动态不刷新(局部刷新)
就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上
发送那些没有改变过的信息。

3、请介绍一下XMLhttprequest对象。
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持
异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不
阻塞用户。通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。

4、AJAX技术体系的组成部分有哪些。
HTML,css,dom,xml,xmlHttpRequest,javascript

5、AJAX应用和传统Web应用有什么不同。
1.在传统的Javascript编程中,如果想得到服务器端数据库或文件上的信息,或者发送客户端信息到服务器,
需要建立一个HTML form然后GET或者POST数据到服务器端。用户需要点击”Submit”按钮来发送或者接受
数据信息,然后等待服务器响应请求,页面重新加载。
2.因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。
3.使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互。
4.通过HTTP Request, 一个web页面可以发送一个请求到web服务器并且接受web服务器返回的信息
(不用重新加载页面),展示给用户的还是同一个页面,用户感觉页面刷新,也看不到到Javascript后台
进行的发送请求和接受响应。

6、AJAX请求总共有多少种CALLBACK。

Ajax请求总共有八种Callback
onSuccess
onFailure
onUninitialized
onLoading
onLoaded
onInteractive
onComplete
onException

7.Ajax和javascript的区别。
1.javascript是一种在浏览器端执行的脚本语言,Ajax是一种创建交互式网页应用的开发技术 ,它是
利用了一系列相关的技术其中就包括javascript。
2.Javascript是由网景公司开发的一种脚本语言,它和sun公司的java语言是没有任何关系的,它们相似的
名称只是一种行销策略。
3.在一般的web开发中,javascript是在浏览器端执行的,我们可以用javascript控制浏览器的行为和内容。
4.在 Ajax应用中信息是如何在浏览器和服务器之间传递的通过XML数据或者字符串

8、在浏览器端如何得到服务器端响应的XML数据。
XMLHttpRequest对象的responseXMl属性

9、 XMLHttpRequest对象在IE和Firefox中创建方式有没有不同。
 有,IE中通过new ActiveXObject()得到,Firefox中通过new XMLHttpRequest()得到

10、介绍一下XMLHttpRequest对象的常用方法和属性。
1.open(“method”,”URL”) 建立对服务器的调用,第一个参数是HTTP请求方式可以为GET,POST或任何
服务器所支持的您想调用的方式。 第二个参数是请求页面的URL。
2.send()方法,发送具体请求
3.abort()方法,停止当前请求
4.readyState属性   请求的状态 有5个可取值0=未初始化 ,1=正在加载 2=以加载,3=交互中,4=完成
5.responseText 属性  服务器的响应,表示为一个串
6. reponseXML 属性 服务器的响应,表示为XML
7.status   服务器的HTTP状态码,200对应ok  400对应not found

12、什么是XML
 XML是扩展标记语言,能够用一系列简单的标记描述数据

13、XML的解析方式
常用的用dom解析和sax解析。dom解析是一次性读取xml文件并将其构造为DOM对象供程序使用,优点是操作
方便,但是比较耗内存。Sax是按事件驱动的方式解析的,占用内存少,但是编程复杂

14、介绍一下XMLHttpRequest对象
1.通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。
2.AJAX开始流行始于Google在2005年使用的”Google Suggest”。
3.“Google Suggest”就是使用XMLHttpRequest对象来创建动态的Web接口:
4.XMLHttpRequest对象在IE5.0+, Safari 1.2, Mozilla1.0/Firefox, Opera 8+ 和NetScapt7 开始
被支持。

15、AJAX的全称是什么? 介绍一下AJAX?
1.AJAX的全称是Asynchronous JavaScript And XML.
2.AJAX是2005年由Google发起并流行起来的编程方法, AJAX不是一个新的编程语言,但是它是一个使用
已有标准的新的编程技术。
3.使用AJAX可以创建更好,更快,更用户界面友好的Web应用。
4.AJAX技术基于Javascript和HTTP Request.

16、Ajax主要包含了哪些技术?
1.Ajax(Asynchronous JavaScript + XML)的定义
2.基于web标准(standards-based presentation)XHTML+CSS的表示;
3.使用 DOM(Document Object Model)进行动态显示及交互;
4.使用 XML 和 XSLT 进行数据交换及相关操作;
5.使用XMLHttpRequest 进行异步数据查询、检索;
6.使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文,
原文题目(Ajax: A New Approach to Web Applications)。
7.AJAX的应用使用支持以上技术的web浏览器作为运行平台。浏览器目前包括:Mozilla、Firefox、
Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。

20、AJAX都有哪些优点和缺点?

1、最大的一点是页面无刷新,用户的体验非常好。
2、使用异步方式与服务器通信,具有更加迅速的响应能力。
3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的
负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的
减少冗余请求,和响应对服务器造成的负担。
4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

ajax的缺点
1、ajax不支持浏览器back按钮
2、安全问题 AJAX暴露了与服务器交互的细节。
3、对搜索引擎的支持比较弱。
4、破坏了程序的异常机制。
5、不容易调试。

ajax常见的面试问题

1:什么是ajax?ajax作用是什么?

异步的javascript和xml  AJAX 是一种用于创建快速动态网页的技术。  ajax用来与后台交互

2:原生js ajax请求有几个步骤?分别是什么

//创建 XMLHttpRequest 对象
var ajax = new XMLHttpRequest();
//规定请求的类型、URL 以及是否异步处理请求。
ajax.open('GET',url,true);
//发送信息至服务器时内容编码类型
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
//发送请求
ajax.send(null);  
//接受服务器响应数据
ajax.onreadystatechange = function () {
    if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { 
    }
};

3:json字符串转换集json对象、json对象转换json字符串

//字符串转对象
JSON.parse(json)
eval('(' + jsonstr + ')')   
// 对象转字符串
JSON.stringify(json)

4:ajax几种请求方式?他们的优缺点?

常用的post,get,delete。不常用copy、head、link等等。

###代码上的区别
 1:get通过url传递参数
 2:post设置请求头  规定请求数据类型

###使用上的区别
 1:post比get安全
(因为post参数在请求体中。get参数在url上面)
 2:get传输速度比post快 根据传参决定的。
(post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)
 3:post传输文件大理论没有限制  get传输文件小大概7-8k ie4k左右
4:get获取数据	post上传数据
(上传的数据比较多  而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)

5:什么情况造成跨域?

同源策略限制 不同源会造成跨域。以下任意一种情况不同,都是不同源。

http://www.baidu.com/8080/index.html

http://	协议不同
www	    子域名不同
baidu.com	主域名不同
8080	端口号不同
www.baidu.com	ip地址和网址不同

6:跨域解决方案有哪些?

1:jsonp 只能解决get跨域(问的最多)

原理:动态创建一个script标签。利用script标签的src属性不受同源策略限制。因为所有的src属性和
href属性都不受同源策略限制。可以请求第三方服务器数据内容。

步骤:
1.去创建一个script标签
2.script的src属性设置接口地址
3.接口参数,必须要带一个自定义函数名 要不然后台无法返回数据。
4.通过定义函数名去接收后台返回数据

//去创建一个script标签
var  script = document.createElement("script");
//script的src属性设置接口地址 并带一个callback回调函数名称
script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback";
//插入到页面
document.head.appendChild(script);
//通过定义函数名去接收后台返回数据
function jsonpCallback(data){
    //注意  jsonp返回的数据是json对象可以直接使用
    //ajax  取得数据是json字符串需要转换成json对象才可以使用。
}

2:CORS:跨域资源共享

原理:服务器设置Access-Control-Allow-OriginHTTP响应头之后,浏览器将会允许跨域请求

限制:浏览器需要支持HTML5,可以支持POST,PUT等方法兼容ie9以上

需要后台设置
Access-Control-Allow-Origin: *              //允许所有域名访问,或者
Access-Control-Allow-Origin: http://a.com   //只允许所有域名访问

http常见状态码有哪些?

一: 2开头状态码
2xx (成功)表示成功处理了请求的状态代码
200 (成功) 服务器已成功处理了请求。 

二: 3开头状态码
3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

三: 4开头状态码
4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理

1:400 (错误请求) 服务器不理解请求的语法。
2:403 (禁止) 服务器拒绝请求。
3:404 (未找到) 服务器找不到请求的网页。

四: 5开头状态码
5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的
错误,而不是请求出错

500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

AJAX = Asynchronous JavaScript and XML(异步 JavaScript 和 XML)。

Ajax 的原理简单来说通过 XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后
用 Javascript 来操作 DOM 而更新页面。这其中最关键的一步就是从服务器获得请求数据。

XmlHttpRequest 是 ajax 的核心机制,它是在 IE5 中首先引入的,是一种支持异步请求的技术。
简单的说,也就是 Javascript 可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值