Как я могу постоянно обновлять div - PullRequest
3 голосов
/ 10 ноября 2009

У меня есть приложение asp.net, где у меня есть div, который показывает значение с другого сайта. Ценность этого сайта постоянно меняется.

Я хочу, чтобы мой div автоматически обновлялся через некоторое время.

Как я могу это сделать.

Ответы [ 4 ]

5 голосов
/ 22 января 2010
$(document).ready(function() {
        var refreshId = setInterval(function()
        {
             $('#main').fadeOut("slow").load('Default.aspx').fadeIn("slow");
        }, 50000);
        });
4 голосов
/ 10 ноября 2009

Извините за ошибку. setTimeout используется вместо setInterval для учета любой задержки, которая может возникнуть в запросе AJAX.

var to;
$(function() {
    // initialize timer to update div every 5 seconds
    to = setTimeout(updateDivContent, 5000);
});

function updateDivContent() {
    // make your AJAX/LOAD request for the data here to populate div
    $('#mydivcontainer').empty().load('myAspFileToGrabExternalData.aspx', null, function() {
        // reset the timer to grab the content in another 5 seconds
        to = setTimeout(updateDivContent, 5000);
    });
}

Вы можете прочитать о методе загрузки jQuery здесь .

1 голос
/ 10 ноября 2009

Вам необходимо использовать активный опрос (неоднократно проверяя другой сайт), который может принести вам некоторую ненависть с этого сайта (а также, возможно, иметь юридические последствия), если только вы не являетесь его владельцем. Возможно, вы не захотите использовать setInterval () для опроса другого сайта, поскольку это может привести к условиям гонки, если сайту требуется немного времени для ответа (то есть, если вы опрашиваете каждые 5 секунд, а сайту требуется 6 секунд, чтобы ответить один раз, затем 1 секунда, чтобы ответить на последующий ответ, оба из них попадут на вашу страницу одновременно).

Чтобы позаимствовать у cballou пост:

var to;
$(function() {
    // initialize timer to update div every 5 seconds
    to = setTimeout(updateDivContent, 5000);
});

function updateDivContent() {
    // make your AJAX/LOAD request for the data here to populate div
    $('#mydivcontainer').load('myAspFileToGrabExternalData.aspx', null, function() {
        // reset the timer to grab the content in another 5 seconds
        to = setTimeout(updateDivContent, 5000);
    });
}

Кроме того, в сообщении cballou есть ошибка, из-за которой он ставил в очередь новый интервал при каждом запуске (так что после 3 итераций вы выбираете страницу 3 раза каждые 5 секунд, а после 10 итераций вы получаете ее дважды в секунду и т. д.).

1 голос
/ 10 ноября 2009

Вы можете использовать функцию setinterval в jquery / javascript. Для получения дополнительной информации вы можете посмотреть этот урок: http://docs.jquery.com/Tutorials:Scroll_Up_Headline_Reader Или найдите на сайте документа jquery другие ссылки.

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