2011-12-14 110 views
2

我有兩個AJAX腳本和xmlhttp請求。 但它們相互衝突,例如AJAX函數2將顯示函數1的xmlhttp.response。我想知道是否有辦法阻止它?我已經嘗試添加xmlhttp.close,但沒有奏效。 在此先感謝!如何阻止XMLHTTP彼此衝突?

<script>var hello = setInterval(function() 
{ 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("main").innerHTML=xmlhttp.responseText; 
    xmlhttp.close; 
    } 
    } 
xmlhttp.open("GET","ajax.php?user=" +username,true); 
xmlhttp.send(); 
}, 1000); 
</script> 

<script>var anotherone = setInterval(function() 
{ 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("sub").innerHTML=xmlhttp.responseText; 
    xmlhttp.close; 
    } 
    } 
xmlhttp.open("GET","ajax.php?user=" +username +"&do=" +option,true); 
xmlhttp.send(); 
}, 1000); 
</script> 

回答

3

你有一個XMLHttpRequest,你繼續寫。在每個函數中,從行開始

var xmlhttp; 

它將其範圍限定爲該函數而不是頁面。

如果您因爲某種原因需要將其範圍設置爲頁面,請重命名其中一個,以便您擁有例如。均爲xmlhttpHelloxmlhttpAnotherone

+0

謝謝!完全忘了那個,笨蛋。 – Supra