使用$ .get定期轮询Express服务器

有一台带服务器时间发生器的Express服务器。 生成的时间被发送到客户端页面gtm.hbs 。 我如何从客户端页面定期轮询服务器? 我正在寻找一个Ajax解决scheme。

以下是存储在\routes\getTime.js的服务器端代码:

 module.exports = { sendCurrentUTCTimeString: function(req, res, next) { var currentUTCTime = new Date(); var currentUTCHours = currentUTCTime.getUTCHours(); var currentUTCMinutes = currentUTCTime.getUTCMinutes(); var currentUTCSeconds = currentUTCTime.getUTCSeconds(); currentUTCHours = ( currentUTCHours < 10 ? "0" : "" ) + currentUTCHours; currentUTCMinutes = ( currentUTCMinutes < 10 ? "0" : "" ) + currentUTCMinutes; currentUTCSeconds = ( currentUTCSeconds < 10 ? "0" : "" ) + currentUTCSeconds; currentUTCHours = ( currentUTCHours == 24 ) ? "00" : currentUTCHours; function pad(number, length) { var str = "" + number; while (str.length < length) { str = '0' + str; } return str; } var offset = new Date().getTimezoneOffset(); offset = ((offset < 0 ? '+' : '-') + pad(parseInt(Math.abs(offset / 60)), 2) + pad(Math.abs(offset % 60), 2)); offset = offset.match(/[\+-][0-9][0-9]/)[0]; res.send({currentUTCTime: currentUTCTime, currentUTCHours: currentUTCHours, currentUTCMinutes: currentUTCMinutes, currentUTCSeconds:currentUTCSeconds, offset: offset}); } } 

gettime.hbs页面的代码是

 <script> $(document).ready(function() { setInterval(function() { var currentUTCHours; var currentUTCMinutes; var currentUTCSeconds; var offset; $.get('/gettime', function(data) { debugger; console.log(data); currentUTCHours = data.currentUTCHours; currentUTCMinutes = data.currentUTCSeconds; currentUTCSeconds = data.currentUTCMinutes; offset = data.offset; $('#currentUTCHours').text(currentUTCHours); $('#currentUTCMinutes').text(currentUTCMinutes); $('#currentUTCSeconds').text(currentUTCSeconds); $('#offset').text(offset); }); console.log('currentUTCHours: ' + currentUTCHours); }, 1500); }); </script> currentUTCHours: <span id="currentUTCHours"></span><br> currentUTCMinutes: <span id="currentUTCMinutes"></span><br> currentUTCSeconds: <span id="currentUTCSeconds"></span><br> offset: <span id="offset"></span><br> 

在这里,我想渲染一个页面,轮询服务器,然后用服务器响应值填充四个<span> s。

连接服务器和客户端的路由是

 app.get('/gettime', getTime.sendCurrentUTCTimeString); app.get('/gtm', function(req, res, next) { res.render('gettime', {}); }); 

 $('#currentUTCHours').text(currentUTCHours); $('#currentUTCSeconds').text(currentUTCSeconds); 

应该在$ .get()中使更改可见。