欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【jquery中ajax学习笔记4】,下面是详细的讲解!
jquery中ajax学习笔记4
缓存问题:
何谓缓存问题?即当浏览器的输入内容相同,即请求的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的动态的验证基本有所了解,后续会根据情况增加相应的内容。
关于jquery中ajax学习笔记4的用户互动如下:
相关问题:JQuery中的ajax怎么传参到后台
答:jquery中ajax只需配置相应的参数即可传参到后台页面。 格式如下: $.ajax({ type: "get",//数据发送的方式(post 或者 get) url: "/admin/index",//要发送的后台地址 data: {val1:"1",val2:"2"},//要发送的数据(参数)格式为{'val1':"1","val2... >>详细
相关问题:Ajax报错 第四行 “Ajax未定义”,如何解决呢。。 不...
答:Ajax这个对象浏览器的js里可是没有的啊,你用这个对象肯定就找不到埃不用jquery,要是比较原始的方法示例如下: var x = 12;var xmlhttp;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpReq... >>详细
相关问题:关于jquery中ajax的用法
答:最基本的是ajax.而get,post都是在ajax的基础上进行简化的 >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【ComboBox】ComboBox 和 DateField 在IE下消失的
- 【dom】javascript dom追加内容实现示例-追加内容
- 【has】基于jquery的has()方法以及与find()方法以
- 【checkbox】让checkbox不选中即将选中的checkbox
- 【Array】js中更短的 Array 类型转换-类型转换
- 【append】append和appendTo的区别以及appendChil
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-