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 相关文章推荐
javascript的内存管理详解
Aug 07 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
Jan 13 Javascript
深入学习JavaScript中的原型prototype
Aug 13 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
Nov 24 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
Angular中的interceptors拦截器
Jun 25 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
Apr 29 Javascript
简单了解JavaScript中常见的反模式
Jun 21 Javascript
layui 对弹窗 form表单赋值的实现方法
Sep 04 Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 Javascript
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
Python机器学习之决策树和随机森林
Jul 15 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的in_array低性能问题
2013/09/17 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
JS实现多功能计算器
2020/10/28 Javascript
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
Python中return语句用法实例分析
2015/08/04 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python实现图片中文字分割效果
2019/07/22 Python
Django框架安装方法图文详解
2019/11/04 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
python线程池如何使用
2020/05/28 Python
Python中Yield的基本用法
2020/10/18 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
手机配件第一品牌:ZAGG
2017/05/28 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
酒店营销策划方案
2014/02/07 职场文书
收款委托书范本
2014/09/11 职场文书
勤俭节约主题班会
2015/08/13 职场文书
简历自我评价范文
2019/04/24 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS