2015-10-12 79 views
0

我正在編寫一個簡單的PHP/JS腳本來確定和管理所有Windows終端服務器的狀態。 正如您所知,通過WMI訪問速度非常慢,因此我希望AJAX在循環每個服務器時顯示每個服務器的進度。 該代碼在Firefox中按預期工作。 在鉻代碼工作,但循環時不顯示狀態。循環後顯示內容。 在IE11中,代碼不起作用。通過警報檢查IE調用這兩個函數,並且還獲取if語句創建requestobject。 有人可以幫助我獲得IE瀏覽器的工作狀態和Chrome顯示狀態嗎? 謝謝你的幫助。Javascript/AJAX請求沒有/不適合在IE/chrome中工作

我的代碼如下所示:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
 
<html> 
 
<head> 
 
<link rel="stylesheet" type="text/css" href="tsmanager.css"> 
 
<script type="text/javascript"> 
 
\t function refreshall() 
 
\t { 
 
\t \t var table = document.getElementById("terminalservers"); 
 
\t \t for (var i = 0, row; row = table.rows[i]; i++) 
 
\t \t { 
 
\t \t \t var sComputer = row.id; 
 
\t \t \t if (sComputer != "") 
 
\t \t \t { 
 
\t \t \t \t setTimeout(refresh(sComputer), 2000); \t 
 
\t \t \t \t setTimeout(document.getElementById("turn").innerHTML = sComputer, 2000); \t 
 
\t \t \t } 
 

 
\t \t } 
 

 
\t } 
 
\t 
 
\t function refresh(sComputer) 
 
\t { 
 
\t \t if (window.XMLHttpRequest) 
 
\t \t { 
 
\t \t \t req = new XMLHttpRequest(); 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
      req = new ActiveXObject("Microsoft.XMLHTTP"); 
 
     } 
 
\t \t req.onreadystatechange = function() 
 
\t \t { 
 
\t \t \t if (req.readyState == 4 && req.status == 200) 
 
\t \t \t { 
 
\t \t \t \t document.getElementById(sComputer).innerHTML = req.responseText; 
 
\t \t \t } 
 
\t \t } 
 
\t \t req.open("GET", "serverrequest.php?name="+sComputer, false); 
 
\t \t req.send(); 
 
\t } 
 
\t 
 
</script> 
 
</head> 
 
<body> 
 
<table id="terminalservers"> 
 

 
    /* some table content with row id=servername */ 
 

 

 
</table> \t 
 
<button onclick="refreshall()">alle</button> 
 
<br><span id="turn">leer</span> 
 
</body> 
 
</html>

回答

0

我建議你看看使用jQuery - 它提供了AJAX和結果的簡單和強大的跨瀏覽器的支持,更可讀的代碼在所有方面。

+0

謝謝你的快速回答。但我不想使用jquery。我想保持簡單。我知道jQuery的優點,但我想避免外部庫。 –