1. Devasa M3U Dosyaları Neden Tarayıcıyı Kilitler?
Bir tarayıcı sekmesinde devasa bir M3U listesi açmaya çalışırken karşılaşılan üç temel mimari darboğaz vardır:
50 MB'lık bir metin dosyasını JavaScript ana iş parçacığında (Main UI Thread) RegExp ile satır satır bölmek tarayıcıyı 10 ila 30 saniye boyunca tamamen dondurur ve kullanıcı arayüzü yanıt vermez hale gelir.
100.000 kanalı ekranda <div> veya <li> elemanları olarak üretmeye kalkışmak tarayıcıda 400.000'den fazla DOM düğümü yaratır. Bu durum 1 GB'ı aşan bellek tüketimine ve sekmenin çökmesine yol açar.
Tarayıcıların geleneksel localStorage API'si 5 MB depolama sınırına sahiptir. 50 MB'lık bir liste JSON formatına dönüştürüldüğünde QuotaExceededError hatasıyla kaydedilemez.
2. Çözüm 1: Web Worker ile Arka Planda Parçalı Ayrıştırma (Chunked Parsing)
Akipa Web Studio, M3U dosyası veya URL'si yüklendiğinde dosya gövdesini ana iş parçacığından tamamen izole eder ve ayrı bir Web Worker iş parçacığına aktarır.
Worker, dosyayı 5.000'lik kanal bloklarına (chunks) ayırarak ayrıştırır. Her blok tamamlandığındapostMessage ile ana uygulamaya ilerleme yüzdesi (% progress) raporlanır. Böylece kullanıcı ekranda donma veya takılma yaşamadan yükleme durumunu gerçek zamanlı izler.
3. Çözüm 2: DOM Sanallaştırma (Virtual Scrolling)
100.000 kanalın tamamını DOM'a basmak yerine DOM Sanallaştırma (Windowing) tekniği uygulanır. Kullanıcının ekran çözünürlüğüne bağlı olarak (örneğin 1080p bir ekranda) aynı anda yalnızca görünür alandaki 15 ila 25 adet kanal kartı DOM'da oluşturulur.
Kullanıcı listeyi aşağı veya yukarı kaydırdıkça, ekrandan çıkan kanal elemanları anında geri dönüştürülür ve yeni görünen kanalların verileriyle yeniden doldurulur:
| Metrik | Geleneksel Web Oynatıcı | Akipa Web Studio Sanallaştırma |
|---|---|---|
| Aktif DOM Düğüm Sayısı | 100.000+ Düğüm | < 50 Düğüm (Sabit) |
| RAM Tüketimi | > 1.200 MB (Çökme Riski) | ~ 45 MB |
| Kaydırma Performansı | 2 - 5 FPS (Şiddetli Takılma) | 60 FPS Akıcı |
| Arama Gecikmesi | 2.000 - 5.000 ms | < 15 ms (Ters İndeks) |
4. Çözüm 3: IndexedDB Tabanlı Yüksek Kapasiteli Depolama
Akipa Studio, 5 MB'lık kısıtlı localStorage yerine tarayıcınızın gigabaytlarca veri depolayabilen yüksek performanslı NoSQL veritabanı IndexedDB motorunu kullanır.
100.000 kanaldan oluşan 60 MB'lık liste IndexedDB üzerinde indekslenmiş koleksiyonlara yazılarak saklanır. Böylece sayfayı yenilediğinizde veya tarayıcıyı kapatıp ertesi gün açtığınızda listenin yeniden indirilmesi veya ayrıştırılması gerekmez; liste mikrosaniyeler içinde hazır hale gelir.
5. Sıkça Sorulan Sorular (SSS)
100.000 kanallı listede kanal aramak ne kadar sürer?
Akipa'nın bellek içi ters indeks (inverted index) arama algoritması sayesinde 100.000 kanal arasında yazdığınız her harf anında (15 milisaniyeden kısa sürede) filtrelenir ve ekranda görüntülenir.
Listemdeki gereksiz kanalları temizleyip dosya boyutunu küçültebilir miyim?
Evet. Akipa'nın dahili M3U Editör aracını kullanarak izlemediğiniz yüzlerce kategoriyi tek tıkla topluca silebilir ve temizlenmiş hafif M3U dosyasını dışa aktarabilirsiniz.
Verilerim sunucuya yüklenmeden nasıl bu kadar hızlı işleniyor?
Akipa, modern tarayıcıların donanım ivmeli JavaScript motorunu (V8/SpiderMonkey) ve Web Workers mimarisini tam kapasiteyle kullanarak tüm hesaplamaları istemci tarafında (Client-Side) gerçekleştirir.