javascript - 基于node.js服务器setTimeout()更改html文本

标签 javascript node.js socket.io

如何使用 node.js 和 setTimeout 函数在一段时间后将 div 的文本更改为另一文本字符串?

主要的警告是应该同时为所有用户更改文本。

假设索引页上的 h2 标题最初会显示“欢迎来到此页面。”

5 秒后(在服务器时间之后,而不是在请求时间之后),h2 标题应更改为“让我们开始吧。”

如果服务器启动后 6 秒内收到另一个请求,他们应该会看到“让我们开始吧”。并且永远不会看到“欢迎来到此页面”。因为 h2 标题应该被普遍改变。

非常感谢任何指导。

最佳答案

您可以尝试以下方法(Express + SocketIO 1.0 示例):

server.js:

var app    = require('express')();
var server = require('http').createServer(app);
var io     = require('socket.io')(server);

server.listen(80);

var dir = __dirname;

app.get('/', function(req, res) {
    res.sendfile(dir + '/index.html');
});

var header = 'Welcome to this page.';
setTimeout(function() {
    header = 'Let\'s get started.';
    io.emit('change_header', {
        header: header
    });
}, 5000);

io.on('connection', function(socket) {
    socket.emit('change_header', {
        header: header
    });
});

index.html:

<!DOCTYPE html>
<html>
<head>
<script src="/socket.io/socket.io.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
    var socket = io();
    socket.on('change_header', function(data) {
        document.getElementById('header').innerHTML = data.header;
    });
});
</script>
</head>
<body>

    <h2 id="header"></h2>

</body>
</html>

关于javascript - 基于node.js服务器setTimeout()更改html文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23977705/

相关文章:

node.js - 在 mocha 测试中使用带有 ts-node 的断言

javascript - Hapi.js + Socket.io 一起

python - Haproxy socket.io websocket 代理总是退回到长轮询

javascript - 是否有任何 javascript 或 jquery 函数可以确定字符串是数字还是日期?

javascript - 更改分页中选定的页面

node.js - bundle.js :50930 Uncaught TypeError: require(. ..).createServer 不是函数

socket.io - SailsJS - 将 sails.io.js 与 JWT 结合使用

javascript - Vue 无法监听 Co​​rdova 事件

javascript - 使用 Javascript 检查冗余表单字段名称

node.js - new Date() 如何返回比之前调用 new Date() 更早的时间(在 Node.js 中)?