2010-03-30 2 views
0

다음 버스가 만기 될 때 알려주는 PHP 스크립트가 있습니다. 현재 jquery를 사용하여 div로 새로 고침하고 있습니다. 이제 데이터가 바뀌는 시간을 알기 때문에 (이 버스가 왔을 때), 나는이 시간에 (또는 그 직후에, 정말로 중요하지 않은) div를 새로 고치기를 원한다.고정 된 시간에 Jquery를 사용하여 Refresh Div

은 내가 JS에 비교적 새로운 해요 지적한다, 그러나 이것은 내가 지금까지있어 무엇 :

var nextbustime = $('#bus').contents(); 
var nextbustime = new Date(nextbustime); 
var now = new Date(); 

var t = nextbustime.getTime() - now.getTime(); 


var refreshId = setTimeout(function() 
{ 
    $('#bus').fadeOut("slow").load('modules/bus.php?randval='+ Math.random()).fadeIn("slow"); 
}, t); 

가 div가 포함 PHP를 함께 원래로드됩니다. 당연히, 내가 한 것은 전혀 작동하지 않습니다.

일부 루프가 필요합니까? 시간 계산기를 새로 고쳐야합니까?

제발 도와주세요! 사전에

감사합니다 ...

+0

'nextbustime'은 (처음 설정했을 때) 어떤 가치가 있습니까? 또한 두 번째'var'는 거기에 있지 않아야한다는 것에 주목하십시오. 변수를 다시 선언하지 않고 값을 변경하는 것뿐입니다. – icio

답변

0

당신은 여기 jQuery 플러그인 확인, 어쨌든 jQuery를 사용하고 있기 때문에 다음 코드는 첫 번째 새로 고침 작동 jQuery timer plugin

0

나는 당신의 문에서 가정을? 당신이해야 할 일은 다음 몇 가지를 다루는 것입니다. 시간이 다를 수 있으므로 (나타납니다) setInterval은 아마도 작동하지 않습니다. 각 시간 초과가 끝나면 다시 작동하도록하려면 작동해야합니다.

$(document).ready(function() { 
    changeToNextBus(); 
}); 

function changeToNextBus() { 
    var nextbustime = $('#bus').contents(); 
    var nextbustime = new Date(nextbustime); 
    var now = new Date(); 

    var t = nextbustime.getTime() - now.getTime(); 

    var refreshId = setTimeout(function() 
    { 
     $('#bus').fadeOut("slow"). 
        load('modules/bus.php?randval='+ Math.random()). 
        fadeIn("slow"); 
     changeToNextBus(); 
    }, t); 
} 
+0

아니요, 문제의 일부인 첫 번째 새로 고침에서 작동하지 않습니다 ... 그리고 방금 제안한 내용 (및 변형 된 내용)을 시도해 보았습니다. 큰 루프가 발생했습니다 ... Thanks 어쨌든! –

+0

@Ben C는 새로 고침 할 시간 (초)에 대한 올바른 값입니까? 루프없이 이것을 어떻게 할 것인지 확신 할 수 없습니다. 단지 일정한 간격으로 만 루프가 발생하면됩니다. 또한, JavaScript가 bus.php에로드되고 있습니까? 아니면 다른 곳입니까? 내 코드는 다른 곳에서 가정했습니다. – justkt