2012-11-10 34 views
16
<script type="text/javascript"> 
window.onload = setupRefresh; 

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

jquery tự động làm mới mà không nhấp nháy

Trang hiện đang nạp lại mỗi giây là vấn đề duy nhất của nó nhấp nháy làm thế nào để sửa lỗi này

+0

bạn cần phải sử dụng ajax và áp dụng các nội dung trực tiếp trong dom – Ankur

+1

Dường như Tại sao bạn muốn tải lại trang mỗi giây? – frenchie

+1

tất nhiên nó sẽ nhấp nháy .. trang cần tải lại và yêu cầu một chút thời gian. với javascript, chỉ cần sử dụng thẻ 'meta' – charlietfl

Trả lời

31

Bạn có thể sử dụng div và a .get with jquery để lấy dữ liệu từ một trang khác trên trang web của bạn.

Bạn có thể sử dụng setTimeout (chức năng, thời gian)

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

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

Bạn không thể tải lại một trang như vậy mà không có hiệu lực thi hành chớp. Hãy xem AJAX để tìm nạp nội dung cập nhật của trang và hiển thị nội dung không đồng bộ trong trang "hiện có".

Hãy xem: http://www.brightcherry.co.uk/scribbles/jquery-auto-refresh-div-every-x-seconds/, để làm mới một phần màn hình (phần có thể là duy nhất <DIV> của trang).

1

Cám ơn câu trả lời với chức năng, nhưng nếu tôi muốn sử dụng chậm trễ khoảng 1 phút, tôi phải bắt đầu kêu gọi của chức năng với sự chậm trễ bằng cách này:

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

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


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

//]]> 
</script> 

Nếu không, hàm startRefresh sẽ kích hoạt rất nhanh hoặc lặp lại nhiều lần.

4

Nếu trang được tải lại hoàn toàn và ghi đè lên bản thân (bao gồm kịch bản mà là làm nạp lại, sau đó thử phiên bản này:

function startRefresh() { 
    $.get('', function(data) { 
     $(document.body).html(data);  
    }); 
} 
$(function() { 
    setTimeout(startRefresh,1000); 
}); 
Các vấn đề liên quan