ajax学习笔记1
来源:互联网 发布:根据mac查ip 编辑:程序博客网 时间:2024/05/17 04:36
摘要:
本节主要介绍两点:1.缓存问题 2.中文问题
缓存问题:
何谓缓存问题?即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互。
解决方式:在请求的url中加上时间戳。
通过我的测试,IE、360两次用户名输入一致时不会和服务器端交互,firefox即使两次用户名输入的一样,仍然会和服务器端交互。
即:firefox的中服务器端返回的temp值会每次加1,IE、360就不会改变。故加上时间戳在这三种浏览器中都不会再有缓存问题。
修改的代码:
AJAXServer.java
1 //缓存问题加的测试代码 输入内容不变IE、360次数不增加,firefox会增加2 Integer inte= (Integer) request.getSession().getAttribute("total");3 int temp=0;4 if(inte==null){5 temp=1;6 }else{7 temp=inte.intValue()+1;8 }9 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{2 var url="AJAXServer?name="+encodeURI($("#username").val());3 url=convertURL(url); //缓存4 $.get(url,null,function(data){5 $("#result").html(data);6 });
》》》在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");
1 function verifychinese2(){2 var url="AJAXServer?name="+encodeURI(encodeURI($("#username").val()));3 url=convertURL(url); //缓存4 $.get(url,null,function(data){5 $("#result").html(data);6 });7 }
》》》在verify.js中加入上述方法,同时把
String name= URLDecoder.decode(old,"UTF-8");
加入到AJAXServer.java类中的适当的位置。比如放在PrintWriter这句代码后面就可以。
同样,用第二种方式时,别忘记了修改ajax.html中调用的方法,名称改为上述脚本中的verifychinese2()
- Ajax 学习笔记(1)
- Ajax学习笔记(1)
- ajax学习笔记1
- ajax学习笔记1
- ajax学习笔记1
- Ajax学习笔记(1)----小试Ajax
- ajax、javascript学习笔记1
- ajax学习笔记(1)
- AJAX学习笔记1( MOOC )
- ajax学习笔记---什么是Ajax
- [ajax 学习笔记] ajax初试
- Ajax学习笔记-Ajax数据格式
- AJAX学习笔记--慕课网Ajax
- Ajax学习笔记(1)------关于Ajax的代码
- AJAX 学习笔记(1) XMLHttpRequest对象概述
- ASP.NET AJAX 学习笔记1
- Asp.NET Ajax学习笔记(1)
- Ajax学习笔记(1)--分页程序
- 私有ip
- 蓄水池抽样
- 如何kill掉RMAN备份进程
- C中各类型的长度
- 移动互联网中用户需求
- ajax学习笔记1
- SSH 证书认证配置方法
- 德勤高科技高成长中国50强(2008-2010)
- Linux下arm裸机开发环境搭建与实例
- 重学C++(2)——指向类成员的指针(转自:http://www.wangchao.net.cn/bbsdetail_73812.html)
- experiment: AdjustTokenPrivileges
- 深入理解指针函数
- 排序 3 插入排序
- 网页制作人员必看的24条技巧