AJAX奇怪的问题,不知是我新手原因还是其他,有兴趣的近来PP

yyq136 2007-05-28 05:21:41
发现一个问题:
在执行AJAX异步时,相同的地址执行一次异步后,就不能再次执行了;

比如一段程序:

function chktest()
{
InsertProperty("test.aspx");
}
function InsertProperty(fileurl)
{
if(true)
{
var obj = false;
try
{
obj = new ActiveXObject( "Microsoft.XMLHTTP");
}
catch(e)
{
try
{
obj = new ActiveXObject( "Msxml2.XMLHTTP");
}
catch(e2)
{
obj = false;
}
}
obj.open("GET",fileurl,false);
obj.send(null);
}
}



<input type="button" onclick="chktest()" value="test" />
在第一次点击 test 按钮时可以正常执行异步,但是第二次点击 test 后就不再执行异步了,不知道这算是Bug还是因为我的代码缺少了什么设置造成的
请指教
谢谢
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyq136 2007-05-28
  • 打赏
  • 举报
回复
哦!有道理
babyrockxray 2007-05-28
  • 打赏
  • 举报
回复
因为如果两次的请求的url相同,ie会直接从缓存中取,而不会请求到服务器
yyq136 2007-05-28
  • 打赏
  • 举报
回复
To babyrockxray(紫色阴影)
类似你这样的方式我试过是可以的
var str = Math.random();
InsertProperty("test.aspx?type="+str);
我通过在地址后面加一个随即参数,上面的问题就解决了;
但是我就不明白为什么相同的地址只能执行一次异步呢?难道AJAX在执行异步前回去先检查内存的数据吗?
如果这样的话,它的处理机制我真的是理解错误了!
yyq136 2007-05-28
  • 打赏
  • 举报
回复
强烈要求大家解决完我的帖子再走!!!!
强烈抗议
强烈抗议
强烈抗议
babyrockxray 2007-05-28
  • 打赏
  • 举报
回复
也许是因为缓存原因
InsertProperty("test.aspx");
-----------》改成
InsertProperty("test.aspx?ts="+(new Date()).getTime());
yyq136 2007-05-28
  • 打赏
  • 举报
回复

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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