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 相关文章推荐
IE Firefox 使用自定义标签的区别
Oct 15 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
JavaScript:Div层拖动效果实例代码
Aug 06 Javascript
c#+jquery实现获取radio和checkbox的值
Sep 12 Javascript
javascript+HTML5自定义元素播放焦点图动画
Feb 21 Javascript
AngularJs解决跨域问题案例详解(简单方法)
May 19 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
vue移动端屏幕适配详解
Apr 30 Javascript
vue路由插件之vue-route
Jun 13 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
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
php数组和链表的区别总结
2019/09/20 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
Python使用OpenCV进行标定
2018/05/08 Python
基于python实现简单日历
2018/07/28 Python
python实现ID3决策树算法
2018/08/29 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
python自动生成model文件过程详解
2019/11/02 Python
Python新手学习标准库模块命名
2020/05/29 Python
python属于软件吗
2020/06/18 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
水产养殖学应届生求职信
2013/09/29 职场文书
高三地理教学反思
2014/01/11 职场文书
二年级小学生评语
2014/04/21 职场文书
企业员工集体活动方案
2014/08/17 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
利用Pycharm连接服务器的全过程记录
2021/07/01 Python