Tüm terimler, adım adım simülasyon ve teknik detaylar
Ne? Ne demek? Ne işe yarar?
Butona tıkladığında ne oluyor?
"Bağlantıyı Test Et" butonu var. Cihaz bilgileri otomatik gösteriliyor (Windows, Chrome 120 gibi).
x-init="init()" çalışır → detectDevice() çağrılır → UAParser ile cihaz bilgisi alınır.
this.devicePlatform = result.os?.name; // "Windows"this.deviceBrowser = result.browser?.name; // "Chrome"this.deviceMemory = navigator.deviceMemory; // 8
Buton kaybolur, yerine "Test ediliyor... 0%" yazısı ve progress bar çıkar.
runConnectionTest() başlar. State "idle" → "running" olur.
this.connectionState = 'running';this.connectionProgress = 0;
Progress bar hızlıca %30'a ulaşır. "Test ediliyor... 30%" yazar.
50ms aralıklarla %5 artış. Görsel feedback için yapay gecikme. Henüz gerçek test yok.
for (let i = 0; i <= 30; i += 5) { this.connectionProgress = i; await this.sleep(50);}
Progress: 36% → 42% → 48% → 54% → 60%. Her ping için %6 ilerliyor.
5 kez /api/muzibu/ping endpoint'ine istek atılıyor. Her birinin süresi ölçülüyor.
const latencies = [];for (let i = 0; i < 5; i++) { const start = performance.now(); // Kronometre başlat await fetch('/api/muzibu/ping?t=' + Date.now()); latencies.push(performance.now() - start); // Süreyi kaydet}// Örnek sonuç: [45, 52, 48, 55, 50]
(45 + 52 + 48 + 55 + 50) ÷ 5 = 50ms
5 ping değerinin ortalaması alınıyor.
Her değerin ortalamadan farkının ortalaması = 2.8ms
|45-50| + |52-50| + |48-50| + |55-50| + |50-50| = 14 ÷ 5
this.latencyMs = Math.round(latencies.reduce((a,b) => a+b) / 5);// latencyMs = 50const avg = this.latencyMs;this.jitterMs = Math.round(latencies.reduce((s,l) => s + Math.abs(l-avg), 0) / 5);// jitterMs = 3
Progress 65% → 80% → 95%. "Test ediliyor..." devam ediyor.
100MB'lık test dosyası indiriliyor. İndirme süresi ölçülüp Mbps hesaplanıyor.
const speedStart = performance.now();const response = await fetch('/themes/muzibu/speed-test-payload.bin');const blob = await response.blob(); // 100MB indirildiconst duration = (performance.now() - speedStart) / 1000; // saniyethis.speedMbps = (blob.size * 8 / duration / 1000000); // 45.2 Mbps
Hız puanı + Gecikme puanı + Kararlılık puanı = Toplam puan
45 Mbps = +35p | 50ms = +40p | 3ms jitter = +20p
this.connectionState = 'result';this.calculateOverallResult(); // Genel sonuç belirleniyorthis.saveTestToBackend(); // /api/muzibu/speed-test'e POSTdocument.getElementById('result-section')?.scrollIntoView();
Değer Aralıkları ve Puan Karşılıkları
| Gecikme (ms) | Durum | Puan Katkısı | Renk | Kullanıcı Deneyimi |
|---|---|---|---|---|
| ≤50ms | Çok İyi | +40 puan | Şarkılar anında başlar, geçişler akıcı | |
| 51-100ms | İyi | +35 puan | Fark edilmez, sorunsuz dinleme | |
| 101-200ms | Normal | +25 puan | Hafif bekleme olabilir | |
| 201-400ms | Yüksek | +15 puan | ⚠️ Şarkı geçişleri yavaş + uyarı mesajı | |
| >400ms | Çok Yüksek | +5 puan | ⚠️ Takılmalar, gecikmeler + uyarı mesajı |
| Jitter (ms) | Durum | Puan Katkısı | Anlam |
|---|---|---|---|
| ≤20ms | Çok İyi | +20 puan | Çok stabil bağlantı |
| 21-50ms | İyi | +15 puan | Normal stabilite |
| 51-100ms | Kararsız | +10 puan | ⚠️ "Bağlantınız kararsız" uyarısı |
| >100ms | Çok Kararsız | +5 puan | ⚠️ "Bağlantınız çok kararsız" uyarısı |