Javascript 无限循环js更改标题

Javascript 无限循环js更改标题,javascript,jquery,Javascript,Jquery,如何在无限循环中更改我的站点标题?当消息传来时,函数changetTitle()执行一段时间以单击用户按钮,但当无限循环运行时,我什么也做不了 功能点击按钮 功能更改标题和睡眠 函数睡眠(毫秒){ var start=new Date().getTime(); 对于(变量i=0;i毫秒){ 打破 } } } 函数changetTitle(){ 做{ document.title=“新邮件…”; 睡眠(1000); var text=“From”+$(“#hNot”).val()+”; docum

如何在无限循环中更改我的站点标题?当消息传来时,函数
changetTitle()
执行一段时间以单击用户按钮,但当无限循环运行时,我什么也做不了

功能点击按钮

功能更改标题和睡眠

函数睡眠(毫秒){
var start=new Date().getTime();
对于(变量i=0;i<1e7;i++){
如果((新日期().getTime()-start)>毫秒){
打破
}
}
}
函数changetTitle(){
做{
document.title=“新邮件…”;
睡眠(1000);
var text=“From”+$(“#hNot”).val()+”;
document.title=文本;
睡眠(1000);
}而($(“#hNot”).val()!=”){
document.title=“title default”;
}
};

使用带有
设置超时的函数,而不是任何循环(循环将在执行期间阻塞整个UI,因此在您的情况下永远如此):


使用带有
setTimeout
的函数,而不是任何循环(循环将在执行期间阻塞整个UI,因此在您的情况下永远如此):


这就是你正在做的可怕的事情。您不应该像这样用无休止的循环阻塞整个UI线程。使用事件。您的
睡眠
不应该有
循环
。您可以/应该使用
超时时间
。您可以在输入的按键/模糊事件和/或单击按钮中更改标题。这样可以避免循环或超时?哦,天啊。。。在Javascript中睡眠。您应该使用setTimeout或setInterval。这是您正在做的最糟糕的事情。您不应该像这样用无休止的循环阻塞整个UI线程。使用事件。您的
睡眠
不应该有
循环
。您可以/应该使用
超时时间
。您可以在输入的按键/模糊事件和/或单击按钮中更改标题。这样可以避免循环或超时?哦,天啊。。。在Javascript中睡眠。您应该使用setTimeout或setInterval。
$("#userButton").click(function(){
    $("#hNot").val("");
});
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";
    }
};
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