Hướng dẫn stop interval timer javascript - dừng hẹn giờ khoảng thời gian javascript

Tôi đang sử dụng setInterval(fname, 10000); để gọi một hàm cứ sau 10 giây trong JavaScript. Có thể ngừng gọi nó trên một số sự kiện?

Tôi muốn người dùng có thể dừng việc làm mới dữ liệu lặp đi lặp lại.

Hướng dẫn stop interval timer javascript - dừng hẹn giờ khoảng thời gian javascript

Hỏi ngày 20 tháng 9 năm 2008 lúc 19:29Sep 20, 2008 at 19:29

0

setInterval() Trả về ID khoảng thời gian mà bạn có thể chuyển đến

var myTimer = setInterval(...);
clearInterval(myTimer);
0:

var refreshIntervalId = setInterval(fname, 10000);

/* later */
clearInterval(refreshIntervalId);

Xem các tài liệu cho setInterval()

var myTimer = setInterval(...);
clearInterval(myTimer);
0.

Hướng dẫn stop interval timer javascript - dừng hẹn giờ khoảng thời gian javascript

its4zahoor

1.5591 Huy hiệu vàng15 Huy hiệu bạc21 Huy hiệu đồng1 gold badge15 silver badges21 bronze badges

Đã trả lời ngày 20 tháng 9 năm 2008 lúc 19:30Sep 20, 2008 at 19:30

John Millikinjohn MillikinJohn Millikin

Phim thương hiệu vàng 194K3939 gold badges211 silver badges223 bronze badges

9

Nếu bạn đặt giá trị trả về của

var myTimer = setInterval(...);
clearInterval(myTimer);
3 thành một biến, bạn có thể sử dụng
var myTimer = setInterval(...);
clearInterval(myTimer);
4 để dừng nó.

var myTimer = setInterval(...);
clearInterval(myTimer);

Hướng dẫn stop interval timer javascript - dừng hẹn giờ khoảng thời gian javascript

Rìu

5.1901 Huy hiệu vàng31 Huy hiệu bạc42 Huy hiệu đồng1 gold badge31 silver badges42 bronze badges

Đã trả lời ngày 20 tháng 9 năm 2008 lúc 19:32Sep 20, 2008 at 19:32

Quintin Robinsonquintin RobinsonQuintin Robinson

Huy hiệu vàng 80K1414 gold badges123 silver badges132 bronze badges

2

Bạn có thể đặt một biến mới và tăng nó bởi ++ (đếm một) mỗi khi nó chạy, sau đó tôi sử dụng một câu lệnh có điều kiện để kết thúc nó:

var intervalId = null;
var varCounter = 0;
var varName = function(){
     if(varCounter <= 10) {
          varCounter++;
          /* your code goes here */
     } else {
          clearInterval(intervalId);
     }
};

$(document).ready(function(){
     intervalId = setInterval(varName, 10000);
});

Tôi hy vọng rằng nó sẽ giúp và nó là đúng.

Blauharley

4.1466 Huy hiệu vàng27 Huy hiệu bạc47 Huy hiệu đồng6 gold badges27 silver badges47 bronze badges

Đã trả lời ngày 16 tháng 5 năm 2010 lúc 14:02May 16, 2010 at 14:02

OmgrantomgrantOMGrant

9176 Huy hiệu bạc2 Huy hiệu Đồng6 silver badges2 bronze badges

8

Đã trả lời ... Nhưng nếu bạn cần một bộ đếm thời gian có thể sử dụng lại, có thể sử dụng lại, cũng hỗ trợ nhiều tác vụ trên các khoảng thời gian khác nhau, bạn có thể sử dụng TaskTimer của tôi (cho nút và trình duyệt).

// Timer with 1000ms (1 second) base interval resolution.
const timer = new TaskTimer(1000);

// Add task(s) based on tick intervals.
timer.add({
    id: 'job1',         // unique id of the task
    tickInterval: 5,    // run every 5 ticks (5 x interval = 5000 ms)
    totalRuns: 10,      // run 10 times only. (omit for unlimited times)
    callback(task) {
        // code to be executed on each run
        console.log(task.name + ' task has run ' + task.currentRuns + ' times.');
        // stop the timer anytime you like
        if (someCondition()) timer.stop();
        // or simply remove this task if you have others
        if (someCondition()) timer.remove(task.id);
    }
});

// Start the timer
timer.start();

Trong trường hợp của bạn, khi người dùng nhấp vào để làm phiền dữ liệu-refresh; Bạn cũng có thể gọi

var myTimer = setInterval(...);
clearInterval(myTimer);
5 sau đó
var myTimer = setInterval(...);
clearInterval(myTimer);
6 nếu họ cần kích hoạt lại.

Xem thêm ở đây.

Đã trả lời ngày 23 tháng 8 năm 2016 lúc 15:14Aug 23, 2016 at 15:14

Hướng dẫn stop interval timer javascript - dừng hẹn giờ khoảng thời gian javascript

Onur yıldırımonur yıldırımOnur Yıldırım

31.2K12 Huy hiệu vàng81 Huy hiệu bạc97 Huy hiệu đồng12 gold badges81 silver badges97 bronze badges

0

Trong nodejs, bạn có thể sử dụng từ khóa đặc biệt "" này trong hàm setInterval.this" special keyword within the setInterval function.

Bạn có thể sử dụng từ khóa này để ClearInterval, và đây là một ví dụ:this keyword to clearInterval, and here is an example:

setInterval(
    function clear() {
            clearInterval(this) 
       return clear;
    }()
, 1000)

Khi bạn in giá trị của từ khóa đặc biệt này trong hàm, bạn sẽ xuất ra một đối tượng hết thời gian

var myTimer = setInterval(...);
clearInterval(myTimer);
7this special keyword within the function you output a Timeout object
var myTimer = setInterval(...);
clearInterval(myTimer);
7

Đã trả lời ngày 14 tháng 9 năm 2020 lúc 22:34Sep 14, 2020 at 22:34

Hướng dẫn stop interval timer javascript - dừng hẹn giờ khoảng thời gian javascript

assayag.orgassayag.orgassayag.org

60410 Huy hiệu bạc22 Huy hiệu đồng10 silver badges22 bronze badges

Tại sao không sử dụng một cách tiếp cận đơn giản hơn? Thêm một lớp học!

Đơn giản chỉ cần thêm một lớp nói rằng khoảng thời gian không làm bất cứ điều gì. Ví dụ: trên di chuột.

var i = 0;
this.setInterval(function() {
  if(!$('#counter').hasClass('pauseInterval')) { //only run if it hasn't got this class 'pauseInterval'
    console.log('Counting...');
    $('#counter').html(i++); //just for explaining and showing
  } else {
    console.log('Stopped counting');
  }
}, 500);

/* In this example, I'm adding a class on mouseover and remove it again on mouseleave. You can of course do pretty much whatever you like */
$('#counter').hover(function() { //mouse enter
    $(this).addClass('pauseInterval');
  },function() { //mouse leave
    $(this).removeClass('pauseInterval');
  }
);

/* Other example */
$('#pauseInterval').click(function() {
  $('#counter').toggleClass('pauseInterval');
});
body {
  background-color: #eee;
  font-family: Calibri, Arial, sans-serif;
}
#counter {
  width: 50%;
  background: #ddd;
  border: 2px solid #009afd;
  border-radius: 5px;
  padding: 5px;
  text-align: center;
  transition: .3s;
  margin: 0 auto;
}
#counter.pauseInterval {
  border-color: red;  
}




 

Tôi đã tìm kiếm cách tiếp cận nhanh chóng và dễ dàng này từ lâu, vì vậy tôi đã đăng một số phiên bản để giới thiệu càng nhiều người càng tốt.

Đã trả lời ngày 27 tháng 4 năm 2015 lúc 18:04Apr 27, 2015 at 18:04

Aart Den Braberaart Den BraberAart den Braber

8481 Huy hiệu vàng11 Huy hiệu bạc22 Huy hiệu đồng1 gold badge11 silver badges22 bronze badges

4