TechTorch

Location:HOME > Technology > content

Technology

Real-Time Updates with Node.js: Continuous HTML Page Updates

June 05, 2025Technology1904
Real-Time Updates with Node.js: Continuous HTML Page Updates Introduct

Real-Time Updates with Node.js: Continuous HTML Page Updates

Introduction

Continuous updates to HTML pages using Node.js can significantly enhance user experience, enabling real-time data delivery and interactive web applications. This article explores three common methods to achieve this: WebSockets, Server-Sent Events (SSE), and AJAX Polling. Each approach has its own advantages and use cases, making it essential to choose the right tool for your project.

Method 1: WebSockets

WebSockets provide a full-duplex communication channel, meaning that both the client and server can send and receive data over a single TCP connection. This makes it ideal for real-time applications where bidirectional communication is necessary.

const express  require('express');const http  require('http');const WebSocket  require('ws');const app  express();const server  (app);const wss  new ({ server });('/', (req, res) > {  (__dirname);});wss.on('connection', ws > {  console.log('New client connected');  // Send a message to the client every second  setInterval(() > {    ({ time: new Date().toLocaleTimeString });  }, 1000);});(3000, () > console.log('Server is listening on port 3000'));

Method 2: Server-Sent Events (SSE)

Server-Sent Events (SSE) allows a server to push updates to the client over HTTP, making it simpler than WebSockets if you only need to send updates from the server to the client. SSE is widely supported by modern browsers and is an easy-to-implement solution for one-way updates.

const express  require('express');const app  express();('/events', (req, res) > {  ('Content-Type', 'text/event-stream');  ('Cache-Control', 'no-cache');  ('Connection', 'keep-alive');  // Send a message to the client every second  setInterval(() > {    res.write(`data: ${new Date().toLocaleTimeString}
`);  }, 1000);});(3000, () > console.log('Server is listening on port 3000'));

Method 3: AJAX Polling

AJAX Polling is a simpler method for periodic updates. It involves using AJAX to fetch updates from the server at regular intervals. This approach is straightforward to implement but can be less efficient for frequent updates, as it involves multiple HTTP requests.

Client-side JavaScript

setInterval(() > {  fetch('/time')    .then(response  response.text())    .then(data  {      document.querySelector('#time').innerText  data;    });}, 1000);

Server-side Code

('/time', (req, res)  {  (new Date().toLocaleTimeString);});

Conclusion

The choice of method depends on your specific use case:

WebSockets are ideal for two-way communication between the client and server, making them suitable for applications that require real-time interactions, such as chat or multiplayer games. SSE is great for one-way updates from the server to the client, making it a viable option for applications that need to deliver updates in real-time, like stock tickers or live event streams. AJAX Polling is the simplest method for periodic updates but can be less efficient for frequent updates, due to the multiple HTTP requests it generates.

By implementing any of these methods, you can achieve continuous updates to HTML pages using Node.js, enhancing the functionality and user experience of your web applications.