无限循环js改变标题

时间:2015-06-25 10:13:10

标签: javascript jquery

如何在无限循环中更改网站的标题?当消息到来时,函数changeTitle()执行一段时间以点击用户按钮,但是当无限循环运行时我无法做任何事情。

功能ClickButton

$("#userButton").click(function(){
    $("#hNot").val("");
});

功能changeTitle和sleep

function sleep(milliseconds) {
    var start = new Date().getTime();
    for (var i = 0; i < 1e7; i++) {
        if ((new Date().getTime() - start) > milliseconds) {
            break;
        }
    }
}

function changeTitle() {
    do {
        document.title = "New message...";
        sleep(1000);
        var text = "From " + $("#hNot").val() + "...";
        document.title = text;
        sleep(1000);

    } while ($("#hNot").val() != "") {
        document.title = "title default";
    }
};

1 个答案:

答案 0 :(得分:0)

使用带setTimeout的函数,而不是任何循环(循环将在执行期间阻止整个UI,所以在你的情况下永远都是这样):

function changeTitle(type) {
    if ($("#hNot").val() != "") {
        if (type === 1) {
            document.title = "New message...";
            type = 0;
        } else {
            document.title = "From " + $("#hNot").val() + "...";
            type = 1;
        }
        setTimeout(function(){ changeTitle(type) }, 1000);
    } else {
        document.title = "tittle default";
    }
}
changeTitle(1); //launch title change