/
MashkoA
/
web-nodejs
Обзор
Документация
Войти
/
MashkoA
/
web-nodejs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
public/lab8/task2/script.js
103 строки
3 KB
vSUS1w8OErscaPzljeOMKk86GKFCBmeQUlgjKJCmRenysib5Ll
8 lab
17 апр 2026, 08:17
17 апр 2026, 08:17
3aa355e
Код
Авторство
О чём код?
'use strict'; const processBtn = document.getElementById('processBtn'); const loadGroupsBtn = document.getElementById('loadGroupsBtn'); const loadStadiumsBtn = document.getElementById('loadStadiumsBtn'); const groupsResult = document.getElementById('groupsResult'); const stadiumsResult = document.getElementById('stadiumsResult'); // Обработка данных processBtn.addEventListener('click', async () => { try { processBtn.disabled = true; processBtn.textContent = 'Обработка...'; const response = await fetch('/api/lab8/task2/process'); const result = await response.json(); if (!response.ok) { throw new Error(result.error); } showSuccess('Данные успешно обработаны и сохранены'); } catch (error) { showError(`Ошибка обработки: ${error.message}`); } finally { processBtn.disabled = false; processBtn.textContent = 'Обработать данные'; } }); // Загрузка данных групп loadGroupsBtn.addEventListener('click', async () => { try { const response = await fetch('/api/lab8/task2/groups'); const data = await response.json(); if (!response.ok) { throw new Error(data.error); } groupsResult.innerHTML = `<pre>${JSON.stringify(data, null, 2)}</pre>`; showSuccess('Данные групп загружены'); } catch (error) { showError(`Ошибка загрузки групп: ${error.message}`); groupsResult.innerHTML = '<div class="error">Ошибка загрузки данных</div>'; } }); // Загрузка данных стадионов loadStadiumsBtn.addEventListener('click', async () => { try { const response = await fetch('/api/lab8/task2/stadiums'); const data = await response.json(); if (!response.ok) { throw new Error(data.error); } stadiumsResult.innerHTML = `<pre>${JSON.stringify(data, null, 2)}</pre>`; showSuccess('Данные стадионов загружены'); } catch (error) { showError(`Ошибка загрузки стадионов: ${error.message}`); stadiumsResult.innerHTML = '<div class="error">Ошибка загрузки данных</div>'; } }); // Вспомогательные функции function showError(message) { let errorDiv = document.getElementById('errorMessage'); if (!errorDiv) { errorDiv = document.createElement('div'); errorDiv.id = 'errorMessage'; errorDiv.className = 'error'; document.querySelector('.control-panel').after(errorDiv); } errorDiv.textContent = message; setTimeout(() => { if (errorDiv && errorDiv.parentNode) { errorDiv.remove(); } }, 5000); } function showSuccess(message) { let successDiv = document.getElementById('successMessage'); if (!successDiv) { successDiv = document.createElement('div'); successDiv.id = 'successMessage'; successDiv.className = 'success'; document.querySelector('.control-panel').after(successDiv); } successDiv.textContent = message; setTimeout(() => { if (successDiv && successDiv.parentNode) { successDiv.remove(); } }, 3000); }