一. 首先这是一个老生畅谈的问题,曾经我一天面试下来,至少有三家会问到这个问题,说说你对ajax的认知,说白了就是什么是ajax,ajax有啥用?
什么是ajax:
AJAX是
Asynchronous JavaScript and XML
的缩写;它是一种创建
交互式网页应用
的网页开发技术;AJAX是2005年由Google发起并流行起来的编程方法;
AJAX不是一个新的编程语言,但是它是一个使用已有标准的新的编程技术;
使用AJAX可以创建更好,更快,更用户界面友好的Web应用;
AJAX技术基于Javascript和HTTP Request;
Ajax需要依赖哪些技术作支撑:
基于web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操作;
使用 XMLHttpRequest 进行异步数据查询、检索;
使用 JavaScript 将所有的东西绑定在一起;
为什么要用ajax,它的优势所在:
- 通过
异步模式
,提升了用户体验
; - 优化了
浏览器
和服务器
之间的传输
,减少不必要的数据往返,减少了带宽占用
,降低了资源浪费; - Ajax引擎在
客户端
运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载
;
二. 那么Ajax的最吸引人的特点是什么?
Ajax可以实现
动态不刷新
,也就是局部刷新
的功能,这在手机端可是很有用的哦;再说直白点就是
能在不更新整个页面的前提下维护数据
, 这样做就会让我们的Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的、重复性的信息,用户也无需等待太长的时间,大大的提高了用户的体验;
三. Ajax第一步创建一个XMLHTTPREQUEST对象,你对它是怎么看的?以及它存在的浏览器兼容性问题?怎么解决?
Ajax的核心
是JavaScript对象XmlHttpRequest
;
该对象在Internet Explorer 5
中首次引入,它是一种支持异步请求
的技术;
简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户;
通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新
;
兼容性问题:
var xhr;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xhr = new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
或者使用try......catch......
写法;
四. Ajax技术体系的组成部分有哪些?
html,css,dom,xml,xmlHttpRequest,javascript;
五. AJAX应用和传统Web应用的不同之处?
在传统的Javascript编程中,如果:
想要访问到服务器端
数据库
或文件上的信息;或者发送客户端信息到服务器;
需要建立一个HTML form
,然后GET
或者POST
数据到服务器端;
用户需要点击Submit
按钮来发送或者接受数据信息,然后等待服务器响应请求,页面重新加载;
因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好
;
使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互
;
通过HTTP Request, 一个web页面可以发送一个请求到web服务器并且接受web服务器返回的信息(不用重新加载页面),展示给用户的还是同一个页面,用户感觉页面刷新,也看不到到Javascript后台进行的发送请求和接受响应,效果体验比较好;
六. AJAX请求总共有多少种回调函数---CALLBACK?
Ajax请求总共有八种Callback:
- onSuccess
- onFailure
- onLoading
- onLoaded
- onUninitialized
- onInteractive
- onComplete
- onException
其实这个我也不咋用,最常见的也就前四种;
七.Ajax和javascript的区别?
javascript是一种在浏览器端执行的 客户端
脚本语言
,Ajax是一种创建交互式网页应用
的开发技术 ,它是利用了一系列相关的技术其中就包括javascript;
Javascript是由网景
公司开发的一种脚本语言,它和sun
公司的Java
语言是没有任何关系的,它们相似的名称只是一种行销策略;
在一般的web开发中,javascript是在浏览器端执行的,我们可以用javascript控制浏览器的行为和内容;