
Cara melihat fail JSON yang besar tanpa merosakkan pelayar anda
Diterbitkan pada 23 Jul 2026
Menampal longgokan API 50MB atau eksport pangkalan data penuh ke dalam mana-mana alat JSON berasaskan pelayar — termasuk yang ini — akan menyebabkan tab menjadi perlahan atau beku sepenuhnya. Itu bukan pepijat dalam alat tertentu, ia adalah sifat cara pelayar merender teks dan DOM. Ini apa yang sebenarnya berlaku dan cara mengatasinya.
Kenapa fail JSON besar membekukan pelayar, bukan sekadar “memuatkan dengan perlahan”
Dua kos berasingan bertindih:
- Kos penghuraian (parsing).
JSON.parsepada rentetan 50MB yang terbentuk dengan baik mengambil masa kira-kira separuh saat hingga beberapa saat pada komputer riba biasa — dapat dilihat, tetapi bukan masalah sebenar. - Kos rendering. Ini yang sebenarnya membekukan tab itu. Jika alat merender hasil yang diformat sebagai blok teks gergasi (atau lebih teruk, pokok boleh lipat dengan satu nod DOM setiap kunci), pelayar terpaksa melakukan susun atur dan lukisan berpotensi berjuta-juta nod DOM. Inilah yang menjadikan tab tidak responsif, bukan penghuraian.
Jadi had saiz yang anda hadapi hampir tidak pernah datang daripada spesifikasi JSON atau penghurai — ia datang daripada meminta pelayar melukis sejumlah besar teks atau UI bersarang sekaligus.
Aliran kerja sebenar untuk fail yang benar-benar besar
Jangan buka keseluruhan fail di mana-mana dalam pelayar. Sebaliknya:
- Ekstrak dahulu hanya bahagian yang anda perlukan. Jika anda menyahpepijat satu rekod rosak di dalam longgokan 200MB, anda tidak perlukan 199MB yang lain di hadapan anda. Alat baris arahan mengendalikan ini tanpa pernah memuatkan keseluruhan fail ke dalam memori seperti cara tab pelayar lakukan:
# tarik keluar satu kunci peringkat atas daripada fail besar, secara streaming jq '.results[42]' huge-file.json > fragment.json # atau grep sahaja untuk konteks di sekeliling rentetan yang diketahui dahulu grep -n '"user_id": 88214' huge-file.json - Format hanya serpihan itu dalam pelayar. Beberapa KB JSON yang diekstrak diformat serta-merta dan sebenarnya boleh dibaca — ini adalah tabiat “format hanya serpihan yang anda ambil berat” yang sama yang berbaloi dibina untuk mana-mana log atau longgokan besar, bukan hanya ralat khusus ini.
- Jika anda perlu memeriksa struktur, bukan nilai, jalankan
jq 'keys'ataujq '. | length'secara tempatan dahulu untuk memahami bentuk sebelum menentukan apa yang hendak diekstrak. Anda tidak perlu melihat 50,000 entri tatasusunan untuk tahu tatasusunan itu mempunyai 50,000 entri.
Bila alat pelayar sememangnya baik-baik sahaja
Bagi kebanyakan besar penyahpepijatan sebenar — respons API, fail konfigurasi, muatan webhook — anda berurusan dengan kilobait hingga beberapa megabait, bukan ratusan. Dalam julat itu, menampal terus ke dalam pemformat dan mendapat output segera yang boleh dibaca dengan lokasi ralat tepat adalah lebih pantas daripada menggunakan baris arahan langsung. Saiz di mana ini mula gagal jauh lebih tinggi daripada yang kebanyakan orang sangkakan; ia khususnya “puluhan megabait ke atas” yang menyebabkan masalah sebenar, bukan “lebih daripada satu halaman.”
Rujukan pantas
| Saiz fail | Apa yang perlu dilakukan |
|---|---|
| Bawah ~5MB | Tampal terus ke dalam pemformat pelayar — segera, tiada masalah |
| ~5–30MB | Masih boleh digunakan, tetapi jangka jeda singkat; format hanya apa yang perlu dibaca |
| 30MB+ | Ekstrak serpihan berkaitan dengan jq/grep dahulu, format hanya itu |
Alat itu tidak memerlukan “mod fail besar” untuk membaiki ini — pembaikannya adalah mengekstrak sebelum melihat, yang merupakan perubahan aliran kerja, bukan had alat.