如何使用 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/