2012-06-01 21 views

Trả lời

12

Dưới đây là một ví dụ cơ bản

(function(seconds) { 
    var refresh,  
     intvrefresh = function() { 
      clearInterval(refresh); 
      refresh = setTimeout(function() { 
       location.href = location.href; 
      }, seconds * 1000); 
     }; 

    $(document).on('keypress click', function() { intvrefresh() }); 
    intvrefresh(); 

}(15)); // define here seconds 

này sẽ làm mới trang mỗi 15 giây mà không có một phím nhấn hay một sự kiện nhấp chuột (nhưng nếu bạn có cùng một sự kiện được xác định ở nơi khác thực hiện một stopPropagation() này sẽ không đúng cách làm việc vì sự kiện sẽ không thể truy cập phần tử này)

+0

'.triggerHandler' yêu cầu tham số ... – Alnitak

+0

' .trigger' yêu cầu tham số quá ;-) – Alnitak

+0

mã trong câu trả lời được liên kết là sạch hơn (IMHO) vì nó không dựa vào kích hoạt sự kiện giả để bắt đầu chu kỳ , và nó cũng sử dụng chụp chứ không phải là sủi bọt. – Alnitak

5

Tạo bộ hẹn giờ (setTimeout) sẽ làm mới trang và mỗi lần có nhấn hoặc nhấn phím, chỉ cần khởi động lại bộ hẹn giờ.

Xem this question cho mã thực hiện hầu hết những gì bạn muốn.

FWIW, đây là câu trả lời F.Calderan của viết lại để:

  1. loại trừ việc đóng cửa không cần thiết
  2. tách hành động từ lặp lại, bởi suppling hành động như một callback

-

function setIdle(cb, seconds) { 
    var timer; 
    var interval = seconds * 1000; 
    function refresh() { 
            clearInterval(timer); 
              timer = setTimeout(cb, interval); 
    }; 
    $(document).on('keypress click', refresh); 
    refresh(); 
} 

setIdle(function() { 
    location.href = location.href; 
}, 15); 
Các vấn đề liên quan