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中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
Jul 27 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
15款最好的Bootstrap在线编辑器
Aug 03 Javascript
AngularJS  ng-table插件设置排序
Sep 21 Javascript
js无提示关闭浏览器窗口的两种方法分析
Nov 06 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
React学习笔记之条件渲染(一)
Jul 02 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
解决vue axios的封装 请求状态的错误提示问题
Sep 25 Javascript
微信小程序实现下拉菜单切换效果
Mar 30 Javascript
用JS实现选项卡
Mar 23 Javascript
原生JS实现弹幕效果的简单操作指南
Nov 10 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扩展介绍与开发教程
2010/08/19 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
PHP生成器简单实例
2015/05/13 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
javascript event 事件解析
2011/01/31 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
Python实时获取cmd的输出
2015/12/13 Python
Python 备份程序代码实现
2017/03/06 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
django反向解析和正向解析的方式
2018/06/05 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
培训协议书范本
2014/04/22 职场文书
小学课外阅读总结
2014/07/09 职场文书
个人四风问题整改措施
2014/10/24 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
《火烧云》教学反思
2016/02/23 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python