只有google浏览下,才有这个问题,猜想是不是缓存的问题:有其他人遇到过吗
页面加载的时候,运行一段ajax代码(prototype):
if(document.all){
//IE
window.attachEvent('onload',sample);
}else{
//其他浏览器
window.addEventListener('load',sample,false);
}
function sample(){
...
...
myAjax[0] = new Ajax.Request(url,{
method: 'post', ← 或者:get
onSuccess: getData,
onFailure: showErrMsg,
parameters: paramList
});
function getData(data){
alert(data.responseXML); ← 测试添加
var response=data.responseXML.getElementsByTagName('header');
...
...
}
function showErrMsg(){
...
...
}
}
程序大概是这样的
以上代码作如下说明:
1. 为了防止缓存,生成的url后面加了一个每次都变化的参数:systime=xxxxxxxx
url功能:比如检索数据库,然后返回检索结果(xml)。
2.函数代码例子如下:
调试的时候,正常操作:点击链接跳转画面的时候,正常返回想要得结果(responseXML),当继续操作跳转到其他页面,然后点击返回按钮回到这个页面的时候,
alert(data.responseXML); >> responseXML为null javascript error
之后的javascript 代码也就不执行了...
后台log也看过了,当按返回按钮(history.back)返回,页面加载的时候,sample()函数执行了,但Ajax.Request没有执行,感觉是不是缓存的问题??但是url每次都是变化的。
测试环境:server: tomcat6.0 浏览器:google Chrome2.0.172.39 strut1.2项目
1 楼
lijingf117
2010-08-03
补充一下,后退按钮是指:history.back()
感觉是google Chrome把前一次的显示记录保存,然后虽然利用onload去再执行ajax代码,但世界上没有执行服务器的代码。
感觉是google Chrome把前一次的显示记录保存,然后虽然利用onload去再执行ajax代码,但世界上没有执行服务器的代码。