JQuery概述

jquery:轻量级的库,类库比较小 封装了遍历HTML文档,操作DOM,处理事件,执行动画和开发AJAX的操作.为这些操作提供了简洁的语法和跨平台的兼容性.有很多jQuery的插件,如jQuery UI等,可以根据自己需求决定是否选用.

 

prototype:老牌的轻量级的javascript库

dojo,ext,rico,mootools:更倾向于被称为框架,库文件很大,在页面直接使用javascript的控件来构建前端应用.

 

extjs相对于jquery的缺点:侧重于界面,类库比较大,本身比较臃肿,3.0版以上的并非完全免费,如果用于商业用途,需要付费.

 

Ajax(Asynchronous JavaScript and XML) 异步的JavaScript和xml

a.使用XHTML和CSS标准化呈现

b.使用DOM实现动态显示和交互

c.使用XML和XSLT进行数据交换和处理

d.使用XMLHttpRequest进行异步数据处理

e.最后用JavaScript绑定和处理所有数据

 

--------------------------------------------------XMLHttpRequest--------------------------------------------------------------------

1.使用XMLHttpRequest对象发送请求的过程如下:

a.创建一个XMLHttpRequest对象.

b.设置XMLHttpRequest对象的onreadystatechange属性,指定一个回调函数.

c.使用XMLHttpRequest对象的open方法建立连接.

d.调用XMLHttpRequest对象的send()方法向服务端发送请求.

e.在回调函数中根据回调函数的状态及服务端返回的数据,通过DOM对象更新页面元素.

 

2.XMLHttpRequest使用get方式和post方式和服务端交互的区别:

get方式:

           xmlhttp.open("GET","login?username="+username,true);

           xmlhttp.send(null);

post方式:

          xmlhttp.open("POST","login",true);

          xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

          xmlhttp.send("name="+username);

总结:post方式需要自己设置xmlhttp的头信息,以及参数需要通过send方式发送,而get方式可以通过url传送.

 

3.使用XHR处理接受和处理XML数据

   a.设置servlet中response的contentType为"text/xml;charset=utf-8",构造xml片段,使用out.print()输出.

   b.使用xmlhttp.responseXML的方式来接受XML数据对象的DOM对象(可以利用DOM对象的方法来读到xml中的数据)

     因为xmlhttp.responseXML属性返回的是一个XMLDocument对象,而xmlhttp.responseText返回的是一个文本字符串.

      例如:dom中利用getElementsByTagName可以根据标签名来获取元素节点 此方法返回的是一个数组,取得其中第一个元素的文本内容的方式为:

              domXml.getElementsByTagName("Message")[0].firstChild.nodeValue;

 

4.解决XHR缓存的问题

在url后面拼一个参数,其值为当前时间的时间戳,这样就可以永远不去读缓存的.例如:

var timstamp=new Date().valueOf();

if(url.indexOf("?")>=0)

     url=url+'&t='timstamp;

else

    url=url+'?t='timstamp;

上面这个思路也用来解决一些网站在登录时候的验证码图片的"换一张"这个功能,防止验证码图片缓存.

 

5.Ajax解决中文乱码的最佳方案

  a.在页面端对参数值进行两次encodeURI(). 例如:   login?username=encodeURI(encodeURI(username));

  b.然后在服务器端用java.net.URLDecoder的decode()方法对参数值进行解码.例如:String value=java.net.URLDecoder.decode(request.getParameger("username"),"utf-8")

 

posted @ 2016-04-09 08:31  技无止境  阅读(840)  评论(0编辑  收藏  举报