通过切换和空闲检查每 5 秒获取一次文件不会停止

发布于 2024-10-17 06:34:05 字数 1663 浏览 3 评论 0原文

var timeoutId;

function getenginedetails(){
    $.get('engine.php', function(enginedata) {
        $('#detailsoutput').html(enginedata);
    })

    timeoutId = setTimeout(getenginedetails, 5000);
}

getenginedetails();

$(document).ready(function(){   
    $('#pause').toggle( function() {
        clearTimeout(timeoutId);
        ('#pause').attr({ value: "Start" });
    }, function() {
        getenginedetails();
        ('#pause').attr({ value: "pause" });
    });
});

$.idleTimer(60000);

 $(document).bind("idle.idleTimer", function(){
    clearTimeout(timeoutId);
    ('#pause').attr({ value: "Start" });
 });

你好,我正在使用 jQuery 空闲计时器插件 ( http://paulirish.com/2009/ jquery-idletimer-plugin/ )来检查用户是否在 60 秒内没有空闲。如果他空闲,它将停止获取engine.php 文件。我还想添加一个暂停按钮,如果用户空闲,游戏会自动暂停。但整件事都行不通。它只获取文件,当我按下按钮时,文件会再次出现。


编辑:

@Mash:

var paused = false;

function getenginedetails(){
    $.get('engine.php', function(enginedata) {
        $('#detailsoutput').html(enginedata);
    })

    if (!paused){
        timeoutId = setTimeout(getenginedetails, 5000);
    }
}

function setpause(){
    paused = true;
    ('#pause').attr({
        value: "  Haal van pauze af  ",
        onclick: "setnonpause();"
    });
}

function setnonpause(){
    paused = false;
    ('#pause').attr({
        value: "  Zet op pauze  ",
        onclick: "setpause();"
    });
}

$.idleTimer(60000);

 $(document).bind("idle.idleTimer", function(){
    setpause();
 });

getenginedetails();

这也不起作用。我在 ('#pause').attr({?

var timeoutId;

function getenginedetails(){
    $.get('engine.php', function(enginedata) {
        $('#detailsoutput').html(enginedata);
    })

    timeoutId = setTimeout(getenginedetails, 5000);
}

getenginedetails();

$(document).ready(function(){   
    $('#pause').toggle( function() {
        clearTimeout(timeoutId);
        ('#pause').attr({ value: "Start" });
    }, function() {
        getenginedetails();
        ('#pause').attr({ value: "pause" });
    });
});

$.idleTimer(60000);

 $(document).bind("idle.idleTimer", function(){
    clearTimeout(timeoutId);
    ('#pause').attr({ value: "Start" });
 });

Hi, I'm using the jQuery idle timer plugin ( http://paulirish.com/2009/jquery-idletimer-plugin/ ) to check if the user wasn't idle for 60 seconds. If he is idle it stops getting the engine.php file. Also I wanna add a pause button, and if the user was idle put the game automaticly on pause. But the whole thing doesn't work. It only gets the file and when I press the button the file comes in again.


Edit:

@Mash:

var paused = false;

function getenginedetails(){
    $.get('engine.php', function(enginedata) {
        $('#detailsoutput').html(enginedata);
    })

    if (!paused){
        timeoutId = setTimeout(getenginedetails, 5000);
    }
}

function setpause(){
    paused = true;
    ('#pause').attr({
        value: "  Haal van pauze af  ",
        onclick: "setnonpause();"
    });
}

function setnonpause(){
    paused = false;
    ('#pause').attr({
        value: "  Zet op pauze  ",
        onclick: "setpause();"
    });
}

$.idleTimer(60000);

 $(document).bind("idle.idleTimer", function(){
    setpause();
 });

getenginedetails();

This doesn't work neither. I get an error at ('#pause').attr({?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝天 2024-10-24 06:34:05

在 getenginedetails() 函数中,您应该检查它是否已暂停,因此,不要调用 setTimeout(getenginedetails, 5000)
为此,您必须添加一个布尔变量,例如:

var Paused = false;

,该函数将如下所示:

function getenginedetails(){
    $.get('engine.php', function(enginedata) {
        $('#detailsoutput').html(enginedata);
    })

    if (!paused){
        timeoutId = setTimeout(getenginedetails, 5000);
    }
}

In your getenginedetails() function, you should check if it's paused, of so, do not call the setTimeout(getenginedetails, 5000)
For this, you will have to add a boolean variable like:

var paused = false;

and the function will look like this:

function getenginedetails(){
    $.get('engine.php', function(enginedata) {
        $('#detailsoutput').html(enginedata);
    })

    if (!paused){
        timeoutId = setTimeout(getenginedetails, 5000);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文