Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript createElement每3秒一次_Javascript - Fatal编程技术网

Javascript createElement每3秒一次

Javascript createElement每3秒一次,javascript,Javascript,我尝试每3秒创建一次元素,我使用的是setTimeOut函数,但当我运行代码时,3秒后,它只是垃圾处理脚本并创建元素加载,而不是每3秒创建一个 window.setTimeout(function() { var elementDiv = document.createElement("div"); elementDiv.className = "chat-message error"; elementDiv.appendChild(document.createText

我尝试每3秒创建一次元素,我使用的是setTimeOut函数,但当我运行代码时,3秒后,它只是垃圾处理脚本并创建元素加载,而不是每3秒创建一个

window.setTimeout(function() {
    var elementDiv = document.createElement("div");
    elementDiv.className = "chat-message error";
    elementDiv.appendChild(document.createTextNode(chatBoxMessage));
    document.getElementById('message-window').appendChild(elementDiv);
},3000);
-更新了完整代码并进行了修订

function chatAlert () {
setInterval(function() {
    var elementDiv = document.createElement("div");
    elementDiv.className = "chat-message error";
    elementDiv.appendChild(document.createTextNode(chatBoxMessage));
    document.getElementById('message-window').appendChild(elementDiv);
},3000);

}

setTimeout
只执行一次。您想改用
setInterval

setTimeout
只执行一次。您想改用
setInterval

您应该使用
setInterval

setInterval(function() {
    var elementDiv = document.createElement("div");
    elementDiv.className = "chat-message error";
    elementDiv.appendChild(document.createTextNode(chatBoxMessage));
    document.getElementById('message-window').appendChild(elementDiv);
},3000);

setTimeout
在执行回调时引入延迟,而
setInterval
在每个特定间隔后执行回调。

您应该使用
setInterval

setInterval(function() {
    var elementDiv = document.createElement("div");
    elementDiv.className = "chat-message error";
    elementDiv.appendChild(document.createTextNode(chatBoxMessage));
    document.getElementById('message-window').appendChild(elementDiv);
},3000);

setTimeout
在执行回调时引入延迟,而
setInterval
在每个特定间隔后执行回调。

不必重新解析整个文档以搜索元素,而是缓存选择器:
var msgWin=document.getElementById('message-window')然后在setInterval内使用
msgWin
“3秒后它只是垃圾处理脚本并创建元素加载”我无法复制此内容。您发布的代码只创建一次元素。什么是chatBoxMessage
?chatBoxMessage是一个变量,用于存储消息字符串,即使使用
setInterval
方法而不是
timeout
仍然会将消息延迟3秒,然后再将其复制1000秒。您是否可以创建一个堆栈片段或JSFIDLE来复制该行为,因为您发布的内容到目前为止都没有。而不是重新解析整个文档以搜索元素,缓存选择器:
var msgWin=document.getElementById('message-window')然后在setInterval内使用
msgWin
“3秒后它只是垃圾处理脚本并创建元素加载”我无法复制此内容。您发布的代码只创建一次元素。什么是chatBoxMessage
?chatBoxMessage是一个变量,用于存储消息字符串,即使使用
setInterval
方法而不是
timeout
仍会将消息延迟3秒,然后再将其复制1000秒。创建一个堆栈片段或JSFIDLE来复制该行为如何,因为您发布的内容到目前为止没有。即使使用此方法,在延迟3秒后仍会对其进行垃圾邮件处理
setInterval
方法,我不确定这是否重要,但
setInterval
位于一个函数中,该函数在布尔值为true时被重复调用。我已经用完整的代码更新了原始帖子。即使在使用此
setInterval
方法时,经过3秒钟的延迟,仍有垃圾邮件被发送。我不确定这是否重要,但
setInterval
在一个函数中,当布尔值为true时,该函数被重复调用。我已经用完整的代码更新了原来的帖子