手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >jquery中ajax学习笔记4
jquery中ajax学习笔记4
摘要:缓存问题:何谓缓存问题?即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互。解决...

缓存问题:

何谓缓存问题?即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互。

解决方式:在请求的url中加上时间戳。

通过我的测试,IE、360两次用户名输入一致时不会和服务器端交互,firefox即使两次用户名输入的一样,仍然会和服务器端交互。

即:firefox的中服务器端返回的temp值会每次加1,IE、360就不会改变。故加上时间戳在这三种浏览器中都不会再有缓存问题。

修改的代码:

AJAXServer.java

缓存问题

复制代码 代码如下:

//缓存问题加的测试代码 输入内容不变IE、360次数不增加,firefox会增加

Integer inte= (Integer) request.getSession().getAttribute("total");

int temp=0;

if(inte==null){

temp=1;

}else{

temp=inte.intValue()+1;

}

request.getSession().setAttribute("total",temp);

在AJAXServer.java 加入以上代码,同时out.println的时候把temp变量加进去返回给客户端。

这样,如果客户端的temp值加入,就表示客户端和服务器端进行了交互,否则就没有。

verify.js

复制代码 代码如下:

<>

//给url地址增加时间戳,骗过浏览器,不读取缓存

function convertURL(url){

//获取时间戳

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

//将时间戳信息拼接到url上

//url=“AJAXServer”

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

url=url+"&t="+timestamp;

}else{

url=url+"?t="+timestamp;

}

return url;

}

function verifyCache(){

var url="AJAXServer?name="+$("#username").val();

url=convertURL(url); //缓存

$.get(url,null,function(data){

$("#result").html(data);

});

}

由于只是问了验证和介绍缓存问题,为了便于说明问题,故采用的校验方式是jquery封装ajax接收服务器端文本数据。

》》》同样,别忘记了修改ajax.html中调用的方法,名称改为上述脚本中的verifyCache()

中文问题:

有两种解决方式:

第一种:页面端使用一次encodeURI,服务器端用String name=new String(old.getBytes("iso8859-1"),"UTF-8");

中文1

复制代码 代码如下:

function verifychinese1{

var url="AJAXServer?name="+encodeURI($("#username").val());

url=convertURL(url); //缓存

$.get(url,null,function(data){

$("#result").html(data);

});

》》》在verify.js中加入上述方法,同时把

String name=new String(old.getBytes("iso8859-1"),"UTF-8");

加入到AJAXServer.java类中的适当的位置。比如放在PrintWriter这句代码后面就可以。

同样,用第一种方式时,别忘记了修改ajax.html中调用的方法,名称改为上述脚本中的verifychinese1()

第二种:页面端使用两次encodeURI,服务器端用String name= URLDecoder.decode(old,"UTF-8");

中文2

复制代码 代码如下:

function verifychinese2(){

var url="AJAXServer?name="+encodeURI(encodeURI($("#username").val()));

url=convertURL(url); //缓存

$.get(url,null,function(data){

$("#result").html(data);

});

}

》》》在verify.js中加入上述方法,同时把

String name= URLDecoder.decode(old,"UTF-8");

加入到AJAXServer.java类中的适当的位置。比如放在PrintWriter这句代码后面就可以。

同样,用第二种方式时,别忘记了修改ajax.html中调用的方法,名称改为上述脚本中的verifychinese2()

需要源码的可以留言。

通过几天的学习,ajax的动态的验证基本有所了解,后续会根据情况增加相应的内容。

【jquery中ajax学习笔记4】相关文章:

javascript每日必学之运算符

jquery中添加属性和删除属性

jquery.validate使用时遇到的问题

jQuery 遍历函数详解

jquery任意位置浮动固定层插件用法实例

基于jquery实现下拉框美化特效

jQuery结合ajax实现动态加载文本内容

JQuery中基础过滤选择器用法

AngularJS学习笔记之基本指令

AngularJS学习笔记之ng-options指令

精品推荐
分类导航