2012-06-17 4 views
0

주식 시세가 표시되는 창을 만들려고하는데 10 초마다 자동으로 새로 고침되고 체계적으로 변경됩니다. 따라서 10시에 goog를 말한 다음 aapl이라고 말하십시오.AJAX를 사용하여 콘텐츠 자동 새로 고침

다음은 내가 가지고있는 것입니다.

function stocksUpdate(latest){ 
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("stocks").innerHTML=xmlhttp.responseText; 
} 
} 
xmlHttp.open("GET","stock.php?latest="+latest+"&x="+Math.random(),true); 
xmlHttp.send(); 
} 

function stockShow() { 
var symbol = document.getElementById('stocksymbol'); 
setInterval(stocksUpdate(symbol), 15); 
} 
} 

<body onload="stockShow()"> 

<div id="stocks"> 

<h3 id="stocksymbol"></h3> 

은 그래서 먼저 stocksymbol을 받아야 볼 자사의 비어있는 첫 번째 주식 시세를 얻을을 15 초 후에 그 주식 시세를 얻을 수 등 다음 하나를 반환 .

stock.php 페이지는 완벽하게 작동하지만 아무 것도 표시되지 않습니다. 나는 이것을 올바르게 시작하고 있는가 ?? 첫 번째 쇼를 만들고 setInterval을 설정해야합니까 ?? H3 태그가 의도적으로 비어 있고 stock.php 그렇게 걱정하지 않는 회계 것을

주의 빈

많은 감사이. 니얼

+0

콘솔에 무엇을 말합니? – Joseph

+0

@ joseph-the-dreamer 다음과 같음 Uncaught SyntaxError : 예기치 않은 토큰 <| 잡히지 않은 SyntaxError : 예기치 않은 토큰입니다. | 및 잡히지 않은 ReferenceError : stocksUpdate가 정의되어 있지 않습니다. 두 문법 문제가 어디에 있는지를 말하지 않습니다. – Niall

답변

3

당신은 setInterval을 전달하기 전에 이제 함수 stocksUpdate (기호)를 평가하고 현재로

setInterval(function(){ 
    stocksUpdate(symbol); 
}, 15); 

setInterval(stocksUpdate(symbol), 15); 

를 교체해야합니다.

또한 15는 서버를 중단시키지 않으려면 setInterval (2 개의 응답이 잘못된 순서로 도착할 수 있음)을 사용하는 대신 더 큰 값으로 높이는 것이 좋습니다. 15는 밀리 초 단위의 시간입니다. stocksUpdate 함수의 끝에 setTimeout

+0

15는 오타 였음을 유감으로 생각합니다. 다시 한 번 감사드립니다. – Niall