- Bazen kullanıcı başka bir sayfaya geçtiğinde veya bir form gönderdiğinde log bırakmak isteyebilirsiniz
- Tıklama olayının içine
fetch koymak, isteğin kesinlikle gönderileceğini garanti etmez
- Bu yüzden
fetch yaptıktan sonra window.location atayarak yönlendirmeyi deneyebilirsiniz, ancak bu da yine garanti sağlamaz
- Çünkü XHR asenkron ve non-blocking çalışır
fetchi Promise ile await ederek beklemek mümkün, ancak bunun da dezavantajları vardır
- İşlem yavaşladığı için kullanıcı deneyimi kötüleşir
- Beklendiği kadar güvenilir değildir. Tarayıcı sekmesini kapatmak gibi durumlar ele alınamaz
- Tarayıcıya HTTP isteğini korumasını söyleyen çeşitli seçenekler vardır
fetchte keepalive bayrağı kullanılırsa, sayfa sonlandırılsa bile ilgili istek sürdürülür
Navigator.sendBeacon() gibi daha basit bir fonksiyon vardır
- Tarayıcılar
a etiketinde ping özelliğini de destekler (yalnızca bağlantılarda kullanılabilmesi dezavantajdır, Firefox varsayılan olarak desteklemez)
- Peki hangisini kullanmak gerekir?
- Mümkünse
fetch() + keepalive
- Tarayıcıların %80'i destekler
- Özel header gönderilebilir
GET isteğiyle de kullanılabilir
- Eski tarayıcılar desteklenir
sendBeacon() şu durumlarda iyidir
- Tarayıcıların %96'sı destekler
- Çok fazla özelleştirme gerekmiyorsa
- Temiz ve zarif bir API tercih ediliyorsa
- Tarayıcının diğer öncelikli istekleriyle rekabete girmesi istenmiyorsa
Henüz yorum yok.