源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jquery中ajax学习笔记4

  • 时间:2021-12-11 02:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jquery中ajax学习笔记4
缓存问题: 何谓缓存问题?即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互。 解决方式:在请求的url中加上时间戳。 通过我的测试,IE、360两次用户名输入一致时不会和服务器端交互,firefox即使两次用户名输入的一样,仍然会和服务器端交互。 即:firefox的中服务器端返回的temp值会每次加1,IE、360就不会改变。故加上时间戳在这三种浏览器中都不会再有缓存问题。 修改的代码: AJAXServer.java 缓存问题
[u]复制代码[/u] 代码如下:
//缓存问题加的测试代码 输入内容不变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
[u]复制代码[/u] 代码如下:
<!--缓存问题,用时间戳来解决--> //给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
[u]复制代码[/u] 代码如下:
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
[u]复制代码[/u] 代码如下:
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的动态的验证基本有所了解,后续会根据情况增加相应的内容。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部