解决 在生成的thickbox页面使用ajax的“缓存问题”

来源:互联网 发布:java数据连接池原理 编辑:程序博客网 时间:2024/04/30 15:29

在项目中,使用了thickbox生成表单页面a.jsp。

在a.jsp中使用了ajax从数据库中判断填入的用户名是否重复。

代码如下:

$.get('hmdicAction.action',{'manage.FDicname':fname},function(res){

              if(res=='error'){

                  $('#nameErr').attr('innerHTML''该名称已存在,请重新输入');

                  $('#Txt_Name')[0].value="";

                  $('#Txt_Name').focus();

                  return;

              }else if(res=='nullname'){

                  $('#nameErr').attr('innerHTML''名称不允许为空');

                  $('#Txt_Name')[0].value="";

                  $('#Txt_Name').focus();

                  return;

              }else if(res=='ok'){

                  $('#nameErr').attr('innerHTML''');

                  alert('OK');

                  return;

              }

           });

但是发现,在连续多次新建a.jsp时,当输入的用户名相同时,并没能执行hmdicAction.action,而是返回了上次执行hmdicAction.action的结果,好像进行过缓存似的,由于对thickbox及jquery不熟,将问题定位在jquery中,

后来问高手,得之是IE在作祟。。

*************************************解决:*************************************
在调用ajax传入参数时添加时间参数,这样,每次url都不相同,就不会被IE误认为是一个请求喽~~~

$.get('hmdicAction.action',{'manage.FDicname':fname,'ttime':d.getTime()},function(res){

完整代码如下:

var d=new Date();

$.get('hmdicAction.action',{'manage.FDicname':fname,'ttime':d.getTime()},function(res){

              if(res=='error'){

                  $('#nameErr').attr('innerHTML''该名称已存在,请重新输入');

                  $('#Txt_Name')[0].value="";

                  $('#Txt_Name').focus();

                  return;

              }else if(res=='nullname'){

                  $('#nameErr').attr('innerHTML''名称不允许为空');

                  $('#Txt_Name')[0].value="";

                  $('#Txt_Name').focus();

                  return;

              }else if(res=='ok'){

                  $('#nameErr').attr('innerHTML''');

                  alert('OK');

                  return;

              }

           });

 

原创粉丝点击