CodeKitHub
Polski
Jak wyświetlić ogromny plik JSON bez zawieszania przeglądarki

Jak wyświetlić ogromny plik JSON bez zawieszania przeglądarki

Opublikowano 23 lip 2026

Wklejenie 50 MB zrzutu API lub pełnego eksportu bazy danych do dowolnego narzędzia JSON opartego na przeglądarce — łącznie z tym — spowolni kartę lub całkowicie ją zawiesi. To nie błąd konkretnego narzędzia, to właściwość sposobu, w jaki przeglądarki renderują tekst i DOM. Oto co się naprawdę dzieje i jak sobie z tym poradzić.

Dlaczego duże pliki JSON zamrażają przeglądarkę, a nie tylko „wolno się ładują”

Nakładają się na siebie dwa osobne koszty:

  1. Koszt parsowania. JSON.parse na dobrze sformułowanym 50 MB ciągu zajmuje mniej więcej pół sekundy do kilku sekund na zwykłym laptopie — zauważalne, ale nie prawdziwy problem.
  2. Koszt renderowania. To on tak naprawdę zamraża kartę. Jeśli narzędzie renderuje sformatowany wynik jako gigantyczny blok tekstu (albo gorzej, zwijalne drzewo z węzłem DOM na klucz), przeglądarka musi rozmieścić i namalować potencjalnie miliony węzłów DOM. To sprawia, że karta przestaje reagować, nie parsowanie.

Więc limit rozmiaru, na który trafiasz, niemal nigdy nie pochodzi ze specyfikacji JSON ani z parsera — pochodzi z proszenia przeglądarki, by narysowała naraz ogromną ilość tekstu lub zagnieżdżonego interfejsu.

Rzeczywisty sposób postępowania z naprawdę dużymi plikami

Nie otwieraj całości nigdzie w przeglądarce. Zamiast tego:

  1. Najpierw wyodrębnij tylko potrzebną część. Jeśli debugujesz jeden zepsuty rekord wewnątrz 200 MB zrzutu, nie potrzebujesz pozostałych 199 MB przed sobą. Narzędzia wiersza poleceń radzą sobie z tym, nigdy nie ładując całego pliku do pamięci tak, jak robi to karta przeglądarki:
    # wyciągnij jeden klucz najwyższego poziomu z ogromnego pliku, strumieniowo
    jq '.results[42]' huge-file.json > fragment.json
    
    # albo po prostu najpierw grep po kontekst wokół znanego ciągu
    grep -n '"user_id": 88214' huge-file.json
  2. Formatuj w przeglądarce tylko ten fragment. Kilka KB wyodrębnionego JSON formatuje się natychmiast i jest naprawdę czytelne — to ten sam nawyk „formatuj tylko fragment, na którym ci zależy”, warty wyrobienia przy każdym dużym logu lub zrzucie, nie tylko przy tym konkretnym błędzie.
  3. Jeśli musisz zbadać strukturę, nie wartości, uruchom najpierw lokalnie jq 'keys' lub jq '. | length', aby zrozumieć kształt przed decyzją, co wyodrębnić. Nie musisz widzieć 50 000 wpisów tablicy, żeby wiedzieć, że tablica ma 50 000 wpisów.

Kiedy narzędzie przeglądarkowe jest naprawdę w porządku

Dla zdecydowanej większości prawdziwego debugowania — odpowiedzi API, pliku konfiguracyjnego, ładunku webhooka — masz do czynienia z kilobajtami do kilku megabajtów, nie setkami. W tym zakresie wklejenie bezpośrednio do formatera i uzyskanie natychmiastowego, czytelnego wyniku z dokładnymi lokalizacjami błędów jest szybsze niż sięganie po wiersz poleceń w ogóle. Rozmiar, przy którym to się psuje, jest dużo wyższy, niż większość ludzi zakłada; to konkretnie „dziesiątki megabajtów wzwyż” powoduje prawdziwe kłopoty, nie „więcej niż strona”.

Szybka ściągawka

Rozmiar pliku Co robić
Poniżej ~5 MB Wklej bezpośrednio do formatera w przeglądarce — natychmiastowe, bez problemu
~5–30 MB Nadal wykonalne, ale spodziewaj się krótkiej pauzy; formatuj tylko to, co musisz przeczytać
30 MB+ Najpierw wyodrębnij istotny fragment za pomocą jq/grep, formatuj tylko go

Narzędzie nie potrzebuje „trybu dużego pliku”, aby to naprawić — naprawą jest wyodrębnianie przed wyświetleniem, co jest zmianą sposobu pracy, a nie ograniczeniem narzędzia.

← Powrót do bloga