Ajax双重呼叫

时间:2011-01-12 05:29:42

标签: ajax double call

使用此功能

<script type="text/javascript">
function ajaxcall(div, page)
{
if (window.XMLHttpRequest)
  {xmlhttp=new XMLHttpRequest();}
else
  { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById(div).innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET",page,true);
xmlhttp.send();
}
</script>

我用我的ajax。但是在页面中我调用了2次这个函数:

<script type="text/javascript">ajaxcall("menu", "perfil.php");</script> 
<script type="text/javascript">ajaxcall('mapadiv', "map2.php");</script>

但碰巧只有其中一个可以工作,如果我删除一个其他的工作。我做错了什么?谢谢!

3 个答案:

答案 0 :(得分:0)

ajaxcall可能会抛出错误并导致执行停止。

通过调试器运行它并找出问题是什么(Firebird,Chrome开发者工具等)。

答案 1 :(得分:0)

在函数执行开始时尝试声明“var xmlhttp”。

答案 2 :(得分:0)

第一次调用函数ajaxcall时,会创建xmlhttp对象,并且在发送请求时,您正在调用相同的函数并且该对象被覆盖。这就是为什么只有一个请求正在工作。为了避免这种情况,您可能希望将对象存储在一个数组中然后进行处理。