> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/web/chto-takoe-odnostranichnoe-prilozhenie-single-page-application-spa.md).

# Что такое Одностраничное приложение (single page application, SPA)?

**Одностраничное приложение (SPA, Single Page Application)** — это веб-приложение, которое загружается **один раз** и динамически обновляет содержимое страницы без полной перезагрузки.

***

### 1️⃣ Основная идея

* В обычных сайтах при каждом переходе браузер делает полный HTTP-запрос и получает новый HTML.
* В SPA: HTML, CSS и JS загружаются один раз, а данные подгружаются через API (обычно JSON) и отображаются динамически.

***

### 2️⃣ Принцип работы

1. Пользователь открывает страницу → загружается базовая структура HTML, JS и CSS.
2. При взаимодействии (клики, формы, переходы) JavaScript делает **асинхронные запросы (AJAX/Fetch)** к серверу.
3. Сервер возвращает только данные, а JS обновляет нужные части страницы.

***

### 3️⃣ Примеры SPA

* Gmail
* Google Maps
* Trello
* Slack (веб-версия)

***

### 4️⃣ Преимущества SPA

* Быстрая работа после начальной загрузки (нет полной перезагрузки страницы).
* Плавная навигация и интерактивность.
* Возможность работы офлайн с использованием Service Worker.

***

### 5️⃣ Недостатки SPA

* Первоначальная загрузка может быть тяжелой.
* SEO сложнее, хотя решается рендерингом на сервере (SSR).
* История браузера и переходы требуют дополнительной логики (роутинг на клиенте).

***

### 6️⃣ Значение для QA

* Проверка динамического обновления контента без перезагрузки.
* Проверка правильной работы API-запросов и обработки ошибок.
* Тестирование навигации, состояния истории и кнопок «Назад/Вперед».
* Тестирование производительности и загрузки страницы.
