Автоматическое обновление jquery без мигания
<script type="text/javascript">
window.onload = setupRefresh;
function setupRefresh() {
setTimeout("refreshPage();", 1000);
}
function refreshPage() {
window.location = location.href;
}
Страница теперь перезагружается каждую секунду, единственная проблема - ее мигание, как исправить эту ошибку.
Ответы
Ответ 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 срабатывают очень быстро или повторяются еще раз.