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 相关文章推荐
在网页中屏蔽快捷键
Sep 06 Javascript
动态加载dtree.js树treeview(示例代码)
Dec 17 Javascript
jquery实现动态画圆
Dec 04 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
Feb 04 Javascript
详解JavaScript时间格式化
Dec 23 Javascript
详解Webwork中Action 调用的方法
Feb 02 Javascript
jQuery实现返回顶部功能
Feb 23 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
vue-router传参用法详解
Jan 19 Javascript
微信小程序HTTP接口请求封装代码实例
Sep 05 Javascript
Vue-cli4 配置 element-ui 按需引入操作
Sep 11 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
js实现打字小游戏
2019/12/17 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python之列表推导式的用法
2019/11/29 Python
Python面向对象编程基础实例分析
2020/01/17 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
本科生个人求职自荐信
2013/09/26 职场文书
教师聘用意向书
2015/05/11 职场文书
物资采购管理制度
2015/08/06 职场文书
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python