2012-10-15 10 views
-1

setinterval을 문자열과 함께 사용하면 올바르게 작동하지만 onclick에 의해 설정된 prid (cityid)와 관련된 채팅도로드됩니다. 새로운 클릭에 대한 새로운 ID (도시 아이디)와 이전의 ID와 관련된 매초마다 셔플을 반복합니다. 이전 ID로 실행중인 경우 타이머를 중지하고 새 ID와 관련된 채팅 만 가져오고 새 채팅 만 가능하도록합니다. 새 ID와 관련된 b가 표시됩니다.Setinterval이 제대로 작동하지 않습니다.

Plz 도움말을 참고하십시오. 다른 대안도 있습니다.

PHP는 온 클릭은

  echo "<A href='#' onclick=allccityid('$comid','$comname',$cityid,'$cities');>$cities</A><br> "; 

jQuery 코드는 여기에 여기에있다.

function all(comid,comname,cityid,cname){ 
//clearInterval(si); 

setInterval('chatcom_load('+ comid +','+ cityid +');', 1000) 

} 


function chatcom_load(idi, cityida) { 

$.post('sendchat2.php', {option:'chatcom_load', tocom:idi, tocity:cityida}, function(data) { 
    $('#chatcom #commid #commidwin').html(data); 

}); 
} 

그러나 나는 또한이 방법으로 setInterval을 시도하지만 .I은 chatcom_load 함수에 두 개의 매개 변수를 전달하는 데 필요한 (새로 고침) 작동하지 않았다.

setInterval(chatcom_load(comid, cityid), 1000) 

답변

4
setInterval(chatcom_load(comid, cityid), 

즉시 다음 setInterval 그 결과를 전달 chatcom_load 함수를 호출합니다.

는이 같은 setInterval에 함수를 전달해야

setInterval(function() { chatcom_load(comid, cityid); }, 
+0

이 할 수 있도록 취소 된 후 새 값으로 다시 시작됩니다. – doublesharp

+0

@doublesharp, 빠른 응답을 주셔서 감사합니다. 어떻게 그것을 취소하고 새로운 values.this를 다시 시작할 수 있습니까? –

+0

@SidraNaeem 내 대답보기 - 전역 변수에서'setInterval'의 결과를 참조하여 – doublesharp

0

setInterval()에만 코드가 방법을 실행하고 결과를 전달하고, 함수 호출을합니다. function(){}에 방법을 기입해야합니다. 이 설정되어있는 경우에도 부하에 계속에서 이전 값을 막기 위해 현재의 간격을 참조하고 취소해야합니다 또한`은`에서는 setInterval()에 대한 참조를 추가해야

var si; 
function all(comid,comname,cityid,cname){ 
    if (si) clearInterval(si); 
    si = setInterval(function(){ chatcom_load(comid, cityid); }, 1000); 
} 
+0

을 지울 수 있어야합니다. 괜찮습니다.하지만 이제는 대화를 가져 오는 속도가 매우 느립니다. 더 오래 걸립니다. chat window.whole 채팅 시스템을 업데이트 할 시간이 매우 무거워 보입니다. –

+0

새로운 질문이 필요할 수도 있습니다. 채팅 시스템이 느리게 돌아가는 데에는 많은 이유가 있습니다 ... – doublesharp

관련 문제