Какие ограничения в размере сайта

Ответ

Размер сайта ограничивается браузером и сервером. Основные лимиты:

  1. Общий размер страницы - большинство браузеров поддерживает до 2-5MB для комфортной загрузки. Chrome теоретически может обрабатывать до 10MB.

  2. Cookies - до 4KB на домен (включая все параметры).

  3. LocalStorage - обычно 5-10MB на домен (зависит от браузера).

  4. IndexedDB - практически без ограничений (но лучше не превышать 50MB без запроса прав).

  5. HTTP-запросы - серверы могут ограничивать размер заголовков (обычно 8KB) и тела запроса (POST-данные).

Пример проверки localStorage:

try {
  localStorage.setItem('test', 'a'.repeat(5 * 1024 * 1024));
} catch (e) {
  console.log('Превышен лимит хранилища');
}

Ответ 18+ 🔞

А вот это, блядь, интересный вопрос! Смотри, народ часто думает, что сайт — это как безразмерный мешок, куда можно пихать всё подряд, пока не лопнет. Ан нет, ёпта, есть жёсткие рамки, и браузер — тот ещё зануда, который следит за каждым твоим байтом.

Ну, слушай сюда, по порядку, чтобы не было, как у того Герасима — взял да и утопил всё в пизду, не разобравшись.

Во-первых, сама страничка. Если ты накрутишь её, как новогоднюю ёлку, гифками, скриптами и картинками в 8К, то браузер просто охренеет и сдастся. Обычно комфортный потолок — это 2-5 мегабайта. Хром, конечно, теоретически может и 10МБ проглотить, но пользователь к тому времени уже трижды сходит нахуй за кофе, пока это всё грузится. Волнение ебать, терпения ноль ебать.

Во-вторых, эти ваши кукисы (cookies). Это вообще не хранилище, а так, записка на салфетке. На весь домен тебе выделяют крошечную полочку — 4 килобайта. Туда даже толковую цитату из "Муму" не запишешь, не то что данные. Чисто для сессий и токенов.

Теперь поинтереснее — LocalStorage. Вот это уже шкафчик побольше, обычно 5-10 МБ на домен. Но он синхронный и блокирующий, так что если ты туда решишь засунуть овердохуища данных, то интерфейс зависнет, как будто его Герасим придушил. И браузер может тебе вежливо сказать: «Ну нахуй, хватит».

А вот IndexedDB — это уже целый складской комплекс, почти безлимитный. Теоретически можешь и 50 МБ, и 100 МБ забить, но тут уже браузер начнёт спрашивать разрешения, как та барыня у Тургенева: «А ты, сука, уверен, что тебе столько надо?». Без запроса прав лучше не выёбываться.

И не забывай про сервер, пидарас шерстяной! Он тоже не резиновый. У него свои лимиты на размер заголовков запроса (обычно ~8КБ) и на тело POST-запроса. Отправляешь файл на 2 гига? Получай в ответ «413 Payload Too Large» и иди нахуй.

Вот, кстати, как проверить, не переполнил ли ты свой LocalStorage, чтобы не охуеть от ошибки потом:

try {
  localStorage.setItem('test', 'a'.repeat(5 * 1024 * 1024));
} catch (e) {
  console.log('Превышен лимит хранилища');
}

Короче, мораль простая: не будь, как тот максималист Герасим, который сразу «утопить в пизду». Подходи с умом, распределяй данные, а то получится, как в той сказке — «ядра — чистый изумруд», а на деле — пиздец и ошибка в консоли.