AJAX学习

1.ajax的概念**
局部刷新技术,不是一门新技术,是多种技术的组合,是浏览器端的技术。
2.ajax的作用
实现在当前结果页中显示其他请求的响应内容。在不重新加载页面的情况下,可以与服务器交换数据并更新部分网页的内容。
3.ajax的使用

<script type="text/javascript">
	function ajaxReq(){
		//创建ajax引擎对象
		var ajax ;
		if(window.XMLHttpRequest){
			ajax=new XMLHttpRequest();
		}else if(window.ActiveXObject){
			ajax=new ActiveXObject("Msxm12.XMLHTTP");
		}
		//复写onredaystatechange函数
		ajax.onreadystatechange=function(){
			//判断ajax状态码
			if(ajax.readyState==4){
				//判断响应状态码
				if(ajax.status==200){
					//获取响应内容
					var result = ajax.responseText;
					//处理响应内容
					//alert(result);
					document.getElementById('showdiv').innerHTML = result;
				}
			}
		}
		
		//发送请求,get请求:
		ajax.open("get","ajax?name=张三&pwd=123");
		ajax.send(null);
	}
</script>

post请求:

ajax.open("post",ajax);
		setRequstHeader("Content-type","application/x-www-form-urlencoded");
		request.send("name=张三&pw=123");
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置请求编码格式
		request.setCharacterEncoding("utf-8");
		//设置响应编码格式
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		//获取请求信息
		String name = request.getParameter("name");
		String pwd = request.getParameter("pwd");
		System.out.println(name+pwd);
		response.getWriter().write("学习使我快乐");
	}

4.ajax的同步异步
同步:接收到返回值后才执行下面的代码
异步:不等待返回值,直接执行下面的代码,当返回值接收到后,用创建的子线程接收请求执行。

ajax.open(method,url,async)
async:设置同步代码执行还是异步代码执行,true代表异步,默认是异步(在等待服务器响应时执行其他的脚本,当响应就绪后对响应进行处理。)
,false代表同步。

5.ajax-服务器的响应

属性描述
responseText获得字符串形式的响应数据
responseXML获得XML形式的响应数据
document.getElementById("myDiv").innerHTML=request.responseText;

6.JSON简介
JSON是一种轻量级的数据交换格式, 是存储和交换文本信息的语法。类似 XML。

JSON 比 XML 更小、更快,更易解析。
7.JSON 值
JSON 值可以是:

数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null
语法规则:

格式一:{key:value,key:value,...}
格式二:[{key:value,key:value,...},{key:value,key:value,...},{key:value,key:value,...}]
格式三:{
key:value,
key:{key:value,key:value,...},
key:value,
}

常用放法:
SON 通常用于与服务端交换数据。在接收服务器数据时一般是字符串。
我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
JSON 不能存储 Date 对象。如果你需要存储 Date 对象,需要将其转换为字符串。
之后再将字符串转换为 Date 对象。
8.Jquery实现AJAX

$.ajax({
	type:'POST', 请求方式
	url:'url',请求发送到哪个url
	data:'data';发送到服务器的数据
	success:function(){},请求成功后的回调函数
	dataType:datatype预期服务器返回的数据类型xml/html/script/json/text
});
$.post(url,[data],[callback],[type])
$.get(url,[data],[callback],[type])处
通过远程HTTP POST/GET 请求载入信息

9.ajax面试题

  • Ajax包含下列技术:

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

  • 为什么要用ajax:

Ajax应用程序的优势在于:

  • 通过异步模式,提升了用户体验

  • 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用

  • Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

  • AJAX最大的特点是什么

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

  • 请介绍一下XMLhttprequest对象

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

  • AJAX应用和传统Web应用有什么不同

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

  • AJAX请求总共有多少种CALLBACK

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

  • Ajax和javascript的区别

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

  • 在浏览器端如何得到服务器端响应的XML数据

    XMLHttpRequest对象的responseXMl属性
    
  • XMLHttpRequest对象在IE和Firefox中创建方式有没有不同

    有,IE中通过new ActiveXObject()得到,Firefox中通过newXMLHttpRequest()得到
    
  • 介绍一下XMLHttpRequest对象的常用方法和属性

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

  • 什么是XML

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

  • XML的解析方式

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

    这题是必问的,一般也是最开始就会问到。
    在java中比较流行的有 dojo, Prototype , JQuery, Dwr, extjs 等等
    15、如果熟悉某种ajax框架,他可能会问到怎样在程序中使用这种框架

  • DWR框架介绍

    DWR(DirectWeb Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).
    DWR的实现原理是通过反射,将java翻译成javascript,然后利用回调机制,从而实现了javascript调用Java代码

  • 介绍一下Prototype的 ( ) 函 数 , ()函数, ()F()函数,$A()函数都是什么作用

    $() 方法是在DOM中使用过于频繁的document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。
    $F()函数是另一个大收欢迎的“快捷键”,它能用于返回任何表单输入控件的值,比如textbox,drop-down list。这个方法也能用元素id或元素本身做为参数。
    $A()函数能把它接收到的单个的参数转换成一个Array对象。

  • 介绍一下XMLHttpRequest对象

    通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。
    AJAX开始流行始于Google在2005年使用的”Google Suggest”。
    “Google Suggest”就是使用XMLHttpRequest对象来创建动态的Web接口:
    当用户开始输入google的搜索框,Javascript发送用户输入的字符到服务器,然后服务器返回一个建议列表。
    XMLHttpRequest对象在IE5.0+, Safari 1.2, Mozilla1.0/Firefox, Opera 8+ 和NetScapt7 开始被支持。

  • AJAX的全称是什么? 介绍一下AJAX?

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

  • Ajax主要包含了哪些技术?

    Ajax(Asynchronous JavaScript + XML)的定义
    基于web标准(standards-based presentation)XHTML+CSS的表示;
    使用 DOM(Document Object Model)进行动态显示及交互;
    使用 XML 和 XSLT 进行数据交换及相关操作;
    使用XMLHttpRequest 进行异步数据查询、检索;
    使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文,原文题目(Ajax: A New Approach to Web Applications)。
    类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。
    AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。

  • AJAX都有哪些优点和缺点?

    1、最大的一点是页面无刷新,用户的体验非常好。
    2、使用异步方式与服务器通信,具有更加迅速的响应能力。
    3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
    4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
    ajax的缺点
    1、ajax不支持浏览器back按钮。
    2、安全问题 AJAX暴露了与服务器交互的细节。
    3、对搜索引擎的支持比较弱。
    4、破坏了程序的异常机制。
    5、不容易调试。

  • 如何解决跨域问题?

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

  • 页面编码和被请求的资源编码如果不一致如何处理?

    对于ajax请求传递的参数,如果是get请求方式,参数如果传递中文,在有些浏览器会乱码,不同的浏览器对参数编码的处理方式不同,所以对于get请求的参数需要使用 encodeURIComponent函数对参数进行编码处理,后台开发语言都有相应的解码api。对于post请求不需要进行编码

  • GET和POST的区别,何时使用POST?

    GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符,有的浏览器是8000个字符

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

    在以下情况中,请使用 POST 请求:

  • 无法使用缓存文件(更新服务器上的文件或数据库)

  • 向服务器发送大量数据(POST 没有数据量限制)

  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

  • http常见的状态码有那些?分别代表是什么意思?

    200 - 请求成功

    301 - 资源(网页等)被永久转移到其它URL

    404 - 请求的资源(网页等)不存在

    500 - 内部服务器错误

  • 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么? 分为4个步骤:

    当发送一个 URL 请求时,不管这个 URL 是 Web 页面的 URL 还是 Web 页面上每个资源的 URL,浏览器都会开启一个线程来处理这个请求,同时在远程 DNS 服务器上启动一个 DNS 查询。这能使浏览器获得请求对应的 IP 地址。
    浏览器与远程 Web 服务器通过 TCP 三次握手协商来建立一个 TCP/IP 连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。

    一旦 TCP/IP 连接建立,浏览器会通过该连接向远程服务器发送 HTTP 的 GET 请求。远程服务器找到资源并使用 HTTP 响应返回该资源,值为 200 的 HTTP 响应状态表示一个正确的响应。

    此时,Web 服务器提供资源服务,客户端开始下载资源。

  • ajax请求时,如何解释json数据

    使用eval() 或者JSON.parse() 鉴于安全性考虑,推荐使用JSON.parse()更靠谱,对数据的安全性更好。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值