У меня есть два сценария AJAX с запросами xmlhttp. Но они сталкиваются друг с другом, например, функция AJAX 2 будет отображать xmlhttp.response функции 1. Мне было интересно, есть ли способ остановить это? Я уже пытался добавить xmlhttp.close, но это не сработало. Заранее спасибо!
<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>
У вас есть один XMLHttpRequest, который вы продолжаете писать. В каждой функции начинаются строки
var xmlhttp;
И он будет охватывать эту функцию, а не страницу.
Если вам по какой-то причине требуется область, привязанная к этой странице, переименуйте одну из них, так что у вас есть, например, xmlhttpHello
и xmlhttpAnotherone
.