Ответ
Размер сайта ограничивается браузером и сервером. Основные лимиты:
-
Общий размер страницы - большинство браузеров поддерживает до 2-5MB для комфортной загрузки. Chrome теоретически может обрабатывать до 10MB.
-
Cookies - до 4KB на домен (включая все параметры).
-
LocalStorage - обычно 5-10MB на домен (зависит от браузера).
-
IndexedDB - практически без ограничений (но лучше не превышать 50MB без запроса прав).
-
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('Превышен лимит хранилища');
}
Короче, мораль простая: не будь, как тот максималист Герасим, который сразу «утопить в пизду». Подходи с умом, распределяй данные, а то получится, как в той сказке — «ядра — чистый изумруд», а на деле — пиздец и ошибка в консоли.