Обновить Div с Jquery в установленное время - PullRequest
0 голосов
/ 30 марта 2010

У меня есть php-скрипт, который сообщает мне, когда должна быть запущена следующая шина, и в данный момент я обновляю это в div, используя jquery, каждую минуту или около того. Теперь, поскольку я знаю время, когда данные изменятся (после того, как шина пришла), я хочу, чтобы он обновил 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. Естественно то, что я сделал, вообще не работает.

Мне нужны какие-нибудь петли? Нужно ли обновлять калькулятор времени?

Пожалуйста, помогите!

Заранее спасибо ...

Ответы [ 2 ]

0 голосов
/ 30 марта 2010

Я предполагаю из ваших утверждений, что код работает для первого обновления? Что вам нужно сделать, это обработать следующие несколько. Поскольку время может меняться (кажется), 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 голосов
/ 30 марта 2010

Поскольку вы все равно используете jQuery, проверьте этот плагин jQuery здесь: Плагин таймера jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...