Автоматическое обновление jquery без мигания - программирование
Подтвердить что ты не робот

Автоматическое обновление jquery без мигания

<script type="text/javascript">
window.onload = setupRefresh;

function setupRefresh() {
  setTimeout("refreshPage();", 1000);
}
function refreshPage() {
   window.location = location.href;
}

Страница теперь перезагружается каждую секунду, единственная проблема - ее мигание, как исправить эту ошибку.

4b9b3361

Ответ 1

Вы можете использовать div и .get с jquery для получения ваших данных с другой страницы вашего сайта.

Вы можете использовать setTimeOut (функция, время)

$(function() {
    startRefresh();
});

function startRefresh() {
    setTimeout(startRefresh,1000);
    $.get('pagelink.php', function(data) {
        $('#content_div_id').html(data);    
    });
}

Ответ 2

Вы не можете перезагрузить страницу таким образом без эффекта мигания. Посмотрите на AJAX, чтобы получить обновленное содержимое страницы и отобразить его асинхронно на "существующей" странице.

Посмотрите на http://www.brightcherry.co.uk/scribbles/jquery-auto-refresh-div-every-x-seconds/, чтобы обновить часть экрана (эта часть может быть уникальной <DIV> страницы).

Ответ 3

Если страница полностью перезагружается и перезаписывается (включая script, которая выполняет перезагрузку, попробуйте эту версию:

function startRefresh() {
    $.get('', function(data) {
        $(document.body).html(data);    
    });
}
$(function() {
    setTimeout(startRefresh,1000);
});

Ответ 4

Спасибо за ответ с помощью функции, но если я хочу использовать примерно 1 минуту задержки, я должен начать вызов функции с задержкой таким образом:

<script type="text/javascript">
//<![CDATA[
var vTimeOut;

$(function() {
  vTimeOut= setTimeout(startRefresh, 60000)
});


function startRefresh() {
  clearInterval(vTimeOut);
  vTimeOut= setTimeout(startRefresh, 60000);
  $(<#div>).load(<loadURL>);
}

//]]>
</script>

В противном случае функции startRefresh срабатывают очень быстро или повторяются еще раз.