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 相关文章推荐
js获取会话框prompt的返回值的方法
Jan 10 Javascript
js密码强度校验
Nov 10 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
使用JS正则表达式 替换括号,尖括号等
Nov 29 Javascript
用原生js做单页应用
Jan 17 Javascript
vue-router 学习快速入门
Mar 01 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
JavaScript解析JSON数据示例
Jul 16 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
Aug 18 Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 Javascript
Openlayers测量距离与面积的实现方法
Sep 25 Javascript
SSM VUE Axios详解
Oct 05 Vue.js
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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
PHP设置进度条的方法
2015/07/08 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
JS获取复选框的值,并传递到后台的实现方法
2016/05/30 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
python发送HTTP请求的方法小结
2015/07/08 Python
numpy数组广播的机制
2019/07/12 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
安全资金保障制度
2014/01/23 职场文书
社区活动总结报告
2014/05/05 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python