jquery中ajax学习笔记4


Posted in Javascript onOctober 16, 2011

缓存问题:
何谓缓存问题?即当浏览器的输入内容相同,即请求的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的动态的验证基本有所了解,后续会根据情况增加相应的内容。
Javascript 相关文章推荐
jQuery Selector选择器小结
May 06 Javascript
jQuery操作Select的Option上下移动及移除添加等等
Nov 18 Javascript
javascript拖拽上传类库DropzoneJS使用方法
Dec 05 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
JavaScript判断undefined类型的正确方法
Jun 30 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
Dec 20 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 Javascript
JavaScript正则表达式验证登录实例
Mar 18 Javascript
jquery中ajax学习笔记3
Oct 16 #Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
Oct 16 #Javascript
jquery中ajax学习笔记一
Oct 16 #Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
Oct 16 #Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
Oct 14 #Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
Oct 13 #Javascript
获取body标签的两种方法
Oct 13 #Javascript
You might like
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
Python3中列表list合并的四种方法
2019/04/19 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
Python计算信息熵实例
2020/06/18 Python
python os模块在系统管理中的应用
2020/06/22 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
上班打牌检讨书
2014/02/07 职场文书
python异常中else的实例用法
2021/06/15 Python
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers