const updateLeaderboard = () => { const rows = document.querySelectorAll('table#leaderboard > tbody > tr'); rows.forEach(row => { row.remove(); }); fetch('/api/leaderboard') .then(response => response.json()) .then(data => { const tbody = document.querySelector('table#leaderboard > tbody'); data.forEach((entry, index) => { const row = document.createElement('tr'); const nameCell = document.createElement('td'); nameCell.textContent = entry.name; row.appendChild(nameCell); const scoreCell = document.createElement('td'); scoreCell.textContent = entry.grade; row.appendChild(scoreCell); const timeCell = document.createElement('td'); timeCell.textContent = entry.lastTest; row.appendChild(timeCell); tbody.appendChild(row); }); }) .catch(error => { console.error('Error fetching leaderboard data:', error); }); }; document.addEventListener('DOMContentLoaded', () => { setInterval(updateLeaderboard, 5000); });