Web Workers for Background Tasks
Web Workers allow scripts to run in the background without affecting the main thread.
Creating a Web Worker
// worker.js
onmessage = function(e) {
postMessage("Worker received: " + e.data);
};
JavaScript// main.js
let worker = new Worker("worker.js");
worker.postMessage("Hello, Worker!");
worker.onmessage = function(e) {
console.log(e.data);
};
JavaScriptServer-Sent Events (SSE)
SSE allows servers to push updates to the client over HTTP.
Implementing SSE
Server-side (Node.js example)
const express = require('express');
const app = express();
app.get('/events', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
setInterval(() => {
res.write(`data: ${new Date().toLocaleTimeString()}\n\n`);
}, 1000);
});
app.listen(3000);
JavaScriptClient-side
<script>
const eventSource = new EventSource('/events');
eventSource.onmessage = function(event) {
console.log("New Event: ", event.data);
};
</script>
HTMLWeb Components
Web Components allow custom, reusable HTML elements.
Creating a Custom Element
class MyElement extends HTMLElement {
connectedCallback() {
this.innerHTML = "<p>Hello from Web Component!</p>";
}
}
customElements.define("my-element", MyElement);
JavaScript<my-element></my-element>
HTMLHTML5 introduces powerful features for modern web applications. Next, we’ll discuss performance and optimization.