请问我的代码为什么只能访问服务器一次

bary 2007-10-25 02:42:13
这是《AJAX实战》P60重构的AJAX源代码,为什么我的代码只能访问服务器一次,以后点击都不在访问服务器,而只是重复第一次从服务器端获得的数据?

这是javascript代码

var net=new Object();
net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;
net.ContentLoader=function(url,onload,onerror){//构造函数
this.url=url;
this.req=null;
this.onload=onload;
this.onerror=(onerror)?onerror:this.defaultError;
this.loadXMLDoc(url);
}
net.ContentLoader.prototype={
loadXMLDoc:function(url){
if(window.XMLHttpRequest){
this.req=new XMLHttpRequest();
} else if(window.ActiveXObject){
this.req=new ActiveXObject("Microsoft.XMLHTTP");
}
if(this.req){
try{
var loader=this;
this.req.onreadystatechange=function(){
loader.onReadyState.call(loader);
}
this.req.open('GET',url,true);
alert(url);
this.req.send(null);
}catch(err){
this.onerror.call(this);
}
}
},
onReadyState:function(){
var req=this.req;
var ready=req.readyState;
if(ready==net.READY_STATE_COMPLETE){
var httpStatus=req.status;
if(httpStatus==200||httpStatus==0){
this.onload.call(this);
} else {
this.onerror.call(this);
}
}
},
defaultError:function(){
alert("error fetching data!");
}
}


这是我的HTML代码

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript" src="js/standAJAX.js"></script>
<script type="text/javascript">
function callback(){
document.getElementById("time").innerHTML=this.req.responseText;
}

function todo(){
var loader=new net.ContentLoader('Default2.aspx',callback);
}
</script>
<div>
<input id="Button1" type="button" value="button" onclick="todo()" /></div>
<div id="time"></div>
</form>
</body>
</html>


这是另一个服务器端的代码,用于AJAX访问,ASP.NET编写


protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Response.Flush();
}

...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
function todo(){
var loader=new net.ContentLoader('Default2.aspx?timestamp='+new Date().toString(),callback);
}
非凡笨笨 2007-10-26
  • 打赏
  • 举报
回复
工具_internet选项_设置_每次访问此页时检查,看看能不能解决你的问题.
ma4r5t 2007-10-26
  • 打赏
  • 举报
回复
GET方式 和POST方式是不一样的
你改用POST方式就好了 否则IE当发现当前请求已经存在的时候会去调用缓存
或者加时间戳 或者加随机数Math.random()
  • 打赏
  • 举报
回复
缓存的问题.

//加个时间戳
function todo(){
var loader=new net.ContentLoader('Default2.aspx'+new Date().toString(),callback);
}

52,782

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧