Büyük JSON Dosyalarını Tarayıcıda İşleme Yöntemleri
Tarayıcılar tek iş parçacıklı (single-threaded) çalıştığı için JavaScript motorunun uzun süren işlemleri (büyük JSON/XML parser'ları gibi) tarayıcı sekmesinin donmasına ve "Page Unresponsive" hatasına yol açar.
Web Worker Kullanımı
Bu sorunun en yaygın çözümü, ayrıştırma ve formatlama gibi yoğun CPU gerektiren görevleri **Web Worker** katmanına taşımaktır. Web Worker'lar:
Sanal Liste (Virtual Windowing)
Milyonlarca satırdan oluşan DOM elemanlarını ekrana çizmek tarayıcıyı kilitler. Bu yüzden sadece ekranda görünen satırların DOM üzerinde oluşturulması, kaydırıldıkça dinamik olarak güncellenmesi gerekir. Bu teknolojiye **Virtual List** veya **Windowing** denir.
JSONFlow, hem Web Worker arka plan işlemcisi hem de sanallaştırılmış ağaç/grid yapıları sayesinde büyük dosyaları tereyağından kıl çeker gibi işler.
Bellek Kullanımını Anlamak
50 MB'lık bir JSON dosyası parse edildiğinde metin, JavaScript nesneleri ve görünüm düğümleri nedeniyle bellekte birkaç kat büyüyebilir. Sorun yalnızca parser süresi değildir; milyonlarca DOM düğümü üretmek arayüzü kilitleyebilir. Sanallaştırılmış liste ve katmanlı görüntüleme bu nedenle önemlidir.
Güvenli İnceleme Stratejisi
Önce dosya boyutunu ve biçimini doğrulayın. Tam ağaç yerine biçimlendirilmiş metin veya özet istatistiklerle başlayın. Aradığınız alan belliyse tüm düğümleri açmadan sorgu çalıştırın. Tarayıcı bellek sınırına yaklaşıldığında sekmeyi yenilemeden önce gerekli sonucu dışa aktarın.
Streaming Ne Zaman Gerekir?
Tek bir dev nesne yerine NDJSON gibi satır tabanlı formatlar akış işlemeye daha uygundur. Sunucu tarafında incremental parser kullanmak, tüm belgeyi belleğe almadan kayıtları işleyebilir. JSONFlow istemci tarafında çalıştığından donanıma göre sınırlar değişir; kritik üretim dosyalarında örneklenmiş veya bölünmüş kopyayla çalışmak daha güvenlidir.