如何检查特定的Javascript函数是否正在运行和终止?

时间:2014-09-02 17:29:46

标签: javascript jquery

如何查看是否存在停止javascript功能? 我有一个倒计时JS代码底部;

            function Countdown(options) {
                var timer,
                    instance = this,
                    seconds = options.seconds || 10,
                    perTurn = options.perTurn || 1000,
                    updateStatus = options.onUpdateStatus || function() {},
                    counterEnd = options.onCounterEnd || function() {};

                function decrementCounter() {
                    updateStatus(seconds);
                    if (seconds === 0) {
                        counterEnd();
                        instance.stop();
                    }
                    seconds--;
                }

                this.start = function() {
                    clearInterval(timer);
                    timer = 0;
                    seconds = options.seconds;
                    timer = setInterval(decrementCounter, perTurn);
                };

                this.stop = function() {
                    clearInterval(timer);
                };
            }

            function CountDownToPlay(userID) {
                var myCounter = new Countdown({
                    seconds: 20,
                    perTurn: 2000,
                    onUpdateStatus: function (sec) {
                        console.log(sec);
                    },
                    onCounterEnd: function () {}
                });
                myCounter.start();
            }

它从20秒以上倒数,但很多时候我必须终止这个过程......

如何杀死当前的javascript进程?并检查它是否存在?

样本: http://jsfiddle.net/Ercin/gmt04nx9/

2 个答案:

答案 0 :(得分:2)

该对象实现了stop功能,为什么不直接调用它?

myCounter.stop();

要知道是否存在应该很容易,因为它是您的代码实现Countdown个实例......

答案 1 :(得分:1)

通常,除非您在某处设置标记,否则无法检查javascript函数是否在某处运行。

但是,如果您需要此信息,则可以设置全局变量,并在进程开始/结束时打开/关闭它。你还应该构造一个像“killProc”这样的全局变量,程序间歇性地检查,如果是真的则退出。

有关更多信息,请查看Java的Thread.interrupt()概念。