jquery中ajax学习笔记4
2023-06-13 09:14:30 时间
缓存问题:
何谓缓存问题?即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互。
解决方式:在请求的url中加上时间戳。
通过我的测试,IE、360两次用户名输入一致时不会和服务器端交互,firefox即使两次用户名输入的一样,仍然会和服务器端交互。
即:firefox的中服务器端返回的temp值会每次加1,IE、360就不会改变。故加上时间戳在这三种浏览器中都不会再有缓存问题。
修改的代码:
AJAXServer.java
缓存问题
复制代码代码如下:
何谓缓存问题?即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互。
解决方式:在请求的url中加上时间戳。
通过我的测试,IE、360两次用户名输入一致时不会和服务器端交互,firefox即使两次用户名输入的一样,仍然会和服务器端交互。
即:firefox的中服务器端返回的temp值会每次加1,IE、360就不会改变。故加上时间戳在这三种浏览器中都不会再有缓存问题。
修改的代码:
AJAXServer.java
缓存问题
//缓存问题加的测试代码输入内容不变IE、360次数不增加,firefox会增加
Integerinte=(Integer)request.getSession().getAttribute("total");
inttemp=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地址增加时间戳,骗过浏览器,不读取缓存
functionconvertURL(url){
//获取时间戳
vartimestamp=(newDate().valueOf());
//将时间戳信息拼接到url上
//url=“AJAXServer”
if(url.indexOf("?")>=0){
url=url+"&t="+timestamp;
}else{
url=url+"?t="+timestamp;
}
returnurl;
}
functionverifyCache(){
varurl="AJAXServer?name="+$("#username").val();
url=convertURL(url);//缓存
$.get(url,null,function(data){
$("#result").html(data);
});
}
由于只是问了验证和介绍缓存问题,为了便于说明问题,故采用的校验方式是jquery封装ajax接收服务器端文本数据。
》》》同样,别忘记了修改ajax.html中调用的方法,名称改为上述脚本中的verifyCache()
中文问题:
有两种解决方式:
第一种:页面端使用一次encodeURI,服务器端用Stringname=newString(old.getBytes("iso8859-1"),"UTF-8");
中文1
functionverifychinese1{
varurl="AJAXServer?name="+encodeURI($("#username").val());
url=convertURL(url);//缓存
$.get(url,null,function(data){
$("#result").html(data);
});
》》》在verify.js中加入上述方法,同时把
Stringname=newString(old.getBytes("iso8859-1"),"UTF-8");
加入到AJAXServer.java类中的适当的位置。比如放在PrintWriter这句代码后面就可以。
同样,用第一种方式时,别忘记了修改ajax.html中调用的方法,名称改为上述脚本中的verifychinese1()
第二种:页面端使用两次encodeURI,服务器端用Stringname=URLDecoder.decode(old,"UTF-8");
中文2
functionverifychinese2(){
varurl="AJAXServer?name="+encodeURI(encodeURI($("#username").val()));
url=convertURL(url);//缓存
$.get(url,null,function(data){
$("#result").html(data);
});
}
》》》在verify.js中加入上述方法,同时把
Stringname=URLDecoder.decode(old,"UTF-8");
加入到AJAXServer.java类中的适当的位置。比如放在PrintWriter这句代码后面就可以。
同样,用第二种方式时,别忘记了修改ajax.html中调用的方法,名称改为上述脚本中的verifychinese2()
需要源码的可以留言。
通过几天的学习,ajax的动态的验证基本有所了解,后续会根据情况增加相应的内容。
相关文章
- jquery ajax步骤,jquery ajax(ajax请求的五个步骤jQuery)
- jquery监听浏览器刷新_jQuery刷新浏览器页面大小
- Feature List:制作推荐列表的 jQuery 插件
- 7个有用的jQuery代码片段分享详解编程语言
- 关键字检索高亮标出-javasript/jQuery代码实现详解编程语言
- jQuery $.inArray()方法的用法
- jQuery基础教程笔记适合js新手
- Jquery基础学习笔记
- JQuery学习笔记选择器之二
- JQuery插件模板制作jquery插件的朋友可以参考下
- jquery获取input的value问题说明
- jQuery学习笔记之jQuery选择器的使用
- 基于jquery的cookie的用法
- jQuery源码分析笔记(2)变量列表
- jquery中ajax学习笔记3
- jquery笔记事件
- jQuery学习笔记操作jQuery对象文档处理
- jQuery学习笔记获取jQuery对象
- jQuery实现用方向键控制层的上下左右移动
- js或者jquery判断图片是否加载完成实现代码
- jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
- jQuery+.net实现浏览更多内容(改编php版本)
- jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
- asp.net使用jquery模板引擎jtemplates呈现表格
- JQuery解析HTML、JSON和XML实例详解
- jQuery学习笔记之jQuery构建函数的7种方法
- jQuery学习笔记之toArray()
- jQuery打印指定区域Html页面并自动分页
- jQuery学习笔记之2个小技巧
- jQuery选择器querySelector的使用指南