簡體   English   中英

AJAX只在IE中加載一次

[英]AJAX only loading in IE once

我無法弄清楚為什么下面的AJAX代碼只會在我的php頁面中加載一次IE中的信息,在所有其他瀏覽器中都可以正常工作。

   <script type="text/javascript">
var c=0;

function randomize(str)
{

if (str=="")
  {
  document.getElementById("dispeople").innerHTML="";
  return;
  } 
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("dispeople").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","randomize.php?q=" + Math.random(),false);
xmlhttp.send();

document.getElementById('txt').value=c;
c=c+1;
}

setInterval( "randomize()", 2000 );
</script>

我對使用AJAX相當新,並且已經研究過這個問題並實現了我能找到的所有解決方案,我們將非常感謝任何幫助。

更新,10/21/2011

我已經檢查了JQuery並實現了它,如果有人在這里有任何建議,我仍然遇到同樣的問題我正在使用的代碼:

<script type="text/javascript">
var c=0;

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
 });

   setInterval(function() {
     $.ajax({
     type: "GET",
     url: 'randomize.php?ck=' + (new Date()).getTime(), 
     cache: false,
        success: function(data) {

          $('#dispeople').html(data);
     }
     });
     },2000);


</script>

謝謝

我認為你的jquery代碼很好。 它發生的原因是瀏覽器緩存。 嘗試使用您的請求發送隨機值並從php端返回time()以查看它是否實際調用了php腳本。

試試這個:

setInterval( randomize, 2000 );

你也沒有發送任何字符串。 和代碼的第一部分:

  if (str=="")
  {
    document.getElementById("dispeople").innerHTML="";
    return;//return, only run once....
  } 

也許有一個原因你沒有使用它,但我強烈建議你查看jQuery 該庫會自動消除所有這些瀏覽器不兼容問題,因此您只需擔心自己的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM