Page 582 - Nodejs 교과서 개정2판
P. 582
views/main.html
{% extends 'layout.html' %}
{% block content %}
<div class="timeline">
...
</div>
<script src="https://unpkg.com/event-source-polyfill/src/eventsource.min.js"></script>
<script>
const es = new EventSource('/sse');
es.onmessage = function (e) {
document.querySelectorAll('.time').forEach((td) => {
const end = new Date(td.dataset.start); // 경매 시작 시간
const server = new Date(parseInt(e.data, 10));
end.setDate(end.getDate() + 1); // 경매 종료 시간
if (server >= end) { // 경매가 종료되었으면
return td.textContent = '00:00:00';
} else {
const t = end - server; // 경매 종료까지 남은 시간
const seconds = ('0' + Math.floor((t / 1000) % 60)).slice(-2);
const minutes = ('0' + Math.floor((t / 1000 / 60) % 60)).slice(-2);
const hours = ('0' + Math.floor((t / (1000 * 60 * 60)) % 24)).slice(-2);
return td.textContent = hours + ':' + minutes + ':' + seconds ;
}
});
};
</script>
{% endblock %}
ߣ૩ झ݀о &WFOU4PVSDF ಫܻੑפ Ѫਸ ֍ਵݶ *&৬ ࠳ۄীࢲب ࢲߡࣃ ߮ܳ
ࢎਊೡ ࣻ णפ ف ߣ૩ झ݀ח EventSourceܳ ࢎਊ೧ ࢲߡࣃ ߮ܳ ߉ח ٘ੑפ new Event
Source sse')۽ ࢲߡ৬ োѾೞҊ es.onmessage ژח es.addEventListener('message') ߮ ܻझց۽
ࢲߡ۽ࠗఠ ؘఠܳ ߉ਸ ࣻ णפ ࢲߡ۽ࠗఠ ߉ ؘఠח e.dataী ٜয णפ ইۖࠗ࠙ ࢲߡ द
рҗ ҃ݒ ઙܐ दрਸ ҅೧ ೞח ٘ੑפ दр زউ غب۾ ೮णפ
§ Ӓܿ ചݶ