我想在HTML页面上创建一个值,该值每5秒更新一次,以免使服务器不堪重负。事实证明,函数内部的setTimeout()不能正确延迟,而是立即被调用。有人可以帮我找到线索吗?我真的不想给我的服务器太多工作,因为我必须实现更多的AJAX。
这是代码:
window.onload = function GetUsersNumber() {
aside = document.getElementById("users");
if (XMLHttpRequest) var x = new XMLHttpRequest();
else var x = new ActiveXObject("Microsoft.XMLHTTP");
x.open("GET", "users_count.php", true);
x.send();
x.onreadystatechange = function () {
if (x.readyState == 4) {
if (x.status == 200) aside.innerHTML = x.responseText;
setTimeout(GetUsersNumber(), 50000);
}
}
}
JavaScript中的函数 对象 是一回事。函数 调用
是另一回事。您正在使用后者,方法是在函数名称*后加上括号,但是您需要前者,但不要加上括号。这允许setTimeout
以后使用传入的对象来调用函数本身。假设您确实需要5秒(而不是原始代码使用的50秒):
setTimeout(GetUsersNumber, 5000);
我想在一个HTML页面上做一个值,每5秒更新一次,这样就不会让服务器不堪重负。结果表明,我的函数中的setTimeout()没有适当延迟,而是立即被调用。有人能帮我找个线索吗?我真的不想给我的服务器太多的工作,因为我必须实现更多的Ajax。 代码如下:
问题内容: 我有一个包含10个元素的div,这些元素将被逐个更新,延迟时间为2秒。下面是相同的代码 但是,当我运行它时,所有元素都会一起更新。该程序只是添加一个延迟添加一个开始,并且所有元素都一起更新(被标记)。如何制作代码来逐一标记元素? 问题答案: 您正在打破React的两个基本规则: 不要直接改变状态 如果根据现有状态更新状态,请使用回调形式,因为状态更新可能是异步的(无论如何,在您的示例中
问题内容: 这是用于通过布雷森纳姆算法在计算出的位置上绘制点的代码: 列表“布雷森汉姆”包含所有借助布雷森汉姆线描算法预先计算的点。我想在“ for”循环中设置1秒的延迟,以便在间隔1秒后绘制每个点。“延迟”部分中列出的部分无效。如何使“延迟”工作?更具体地说,我想看到所有的点以1秒的间隔在屏幕上一个接一个地绘制。 问题答案: 我假设您正在某个方法中调用此方法。 只是一个提示: 从来没有睡过油漆过
延迟调用一个函数,直到当前调用堆栈已经清除。 使用 setTimeout() ,超时时间为1ms,将新事件添加到浏览器事件队列,并允许渲染引擎完成其工作。使用展开 (...) 运算符为函数提供任意数量的参数。 const defer = (fn, ...args) => setTimeout(fn, 1, ...args); // Example A: defer(console.log, 'a
Go 语言中没有提供其它面向对象语言的析构函数,但是 Go 语言提供了 defer 语句用于实现其它面向对象语言析构函数的功能 defer 语句常用于 释放资源、解除锁定 以及 错误处理 等 例如C语言中我们申请了一块内存空间,那么不使用时我们就必须释放这块存储空间 例如C语言中我们打开了一个文件,那么我们不使用时就要关闭这个文件 例如C语言中我们打开了一个数据库, 那么我们不使用时就要关闭这个数
我尝试在我的机器人上实现一个延迟功能,以一个接一个地显示多条消息。延迟特性显示在我的Flow Bot Builder图表中,但当我在conversation tester和Messenger上的代理Bot中测试时,延迟实际上并没有发生--所有消息都同时显示。 我已经将IDE中的延迟代码添加到default.scr文件中: 我还按照下面的指示将options.apikey代码行添加到index.js