你见过这样的有关问题吗(?)
你见过这样的问题吗(??)在开发一项目过程中,使用了AJAX,struts,jsp...step1:界面一,有个“修改”按钮,主要是
你见过这样的问题吗(??)
在开发一项目过程中,使用了AJAX,struts,jsp...
step1:
界面一,有个“修改”按钮,主要是触发显示一窗口并根据给定的路径和参数,通过ajax与server交互,设置一些属性并跳转到指定窗口界面二
JScript codefunction myModify_ajax(){ var gp_code; if($("gp_code")) gp_code = $("gp_code").value; else gp_code = null; window.showModalDialog("PrivilegeManager_Query.do?toWay=show&gp_code="+gp_code,"dd","status:1;resizable:0;dialogWidth:45;dialogHeight:35");}
step2:在界面二初始加载时,通过ajax获取一些界面需要的参数,并最终呈现该界面给用户
问题
第一次执行此过程时,通过tomcat的日志,可以看到点击修改按钮后,依次执行了step1,step2中设置的ajax路劲,并将界面需要的对象通过“request.Attribute()”设置,且成功获取。
当再次点击该“修改”按钮,传入同样的路径和参数后,通过日志观察,程序直接跳过step1,执行strp2。
这样就带来了一个问题,我已经修改成功的对象参数,当再次点击“修改”按钮时,取回的仍是之前的结果。
测试发现,出现该问题,将浏览器重启,再次执行时,第一次执行仍正确显示,以后有会出现上述情况。
问题很隐蔽,还望各位说说自己的看法.
[解决办法]这个问题我同事遇过,我自己没测过,每次都是第一次可以,说是第一次也不准,如果第二次ajax提交的数据是上次未曾提交过的数据也是可以的,只要是已经提交过一次的数据就不行,后来说是因为缓存的原因,每次都要清空一下,具体做法我没去看,可以在网上搜一下清空的方法。
[解决办法]这是一个很小的细节问题,属于浏览器缓存问题,解决这种问题很简单。。。
在你的 url 后面加上个参数 new date() 就行了;
例如: PrivilegeManager_Query.do?date=newdate()
[解决办法]