1
서버 시간 생성기가있는 Express 서버가 있습니다. 생성 된 시간은 클라이언트 페이지 gtm.hbs
으로 전송됩니다. 클라이언트 페이지에서 정기적으로 서버를 폴링하려면 어떻게합니까? 나는 아약스 해결책을 찾고있다.
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
페이지 코드가 난 서버가 다음 네 개의 <span>
의 채우기 폴링 것 페이지를 렌더링하고 싶어 여기
<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>
입니다 : 여기
는\routes\getTime.js
에 저장되어있는 서버 측 코드의 서버 응답 값.
경로
서버를 연결하는 클라이언트는app.get('/gettime', getTime.sendCurrentUTCTimeString);
app.get('/gtm', function(req, res, next) {
res.render('gettime', {});
});
모든 서버는 모든 응답과 함께'Date' 헤더를 보냅니다. 난 당신이 자신의 메커니즘을 롤링 대신 헤더 값을 사용하는 것이 좋습니다. – Tomalak
익스프레스 앱에서 정기적으로 서버를 폴링하는 것은 Socket.io를 사용하여 클라이언트에 변경 사항을 푸시 할 때 매우 이상한 방법으로 보입니다. –
동의 함. 그럼에도 불구하고 이것이 이것을 해결하는 데 필요한 방법이었습니다. 나는 내일 해결책을 게시 할 것입니다. –