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 相关文章推荐
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
js 获取今天以及过去日期
Apr 11 Javascript
require.js中的define函数详解
Jul 10 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
Nov 21 Javascript
使用Vue动态生成form表单的实例代码
Apr 26 Javascript
vxe-table vue table 表格组件功能
May 26 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
Jun 01 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
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
经验几则 推荐
2006/09/05 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
微信跳一跳游戏python脚本
2020/04/01 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
存储过程的优缺点是什么
2015/01/10 面试题
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
Python多个MP4合成视频的实现方法
2021/07/16 Python