LocalStorage yerine sessionStorage kullanmak için herhangi bir önerinin gerçekten yardımcı olmadığı çok özel bir kullanım durumu vardır. Use-case, en az bir sekme açılmışken depolanan bir şeyi saklamak kadar basit bir şey olabilir, ancak kalan son sekmeyi kapatırsanız geçersiz kılın. Değerlerinizin çapraz sekme ve pencereye kaydedilmesi gerekiyorsa, denediğim gibi dinleyicileri ile hayatınızı zorlaştırmazsanız sessionStorage size yardımcı olmaz. Bu arada localStorage bunun için mükemmel olurdu, ancak 'tarayıcınızı yeniden başlattıktan sonra bile verileriniz orada bekleyeceği için işi' çok iyi 'yapıyor. Her ikisinden de yararlanan özel bir kod ve mantık kullanarak sona erdi.
Açıklamayı tercih edip kod vermeyi tercih ederim. Önce localStorage'da ihtiyacınız olanı saklayın, ardından localStorage'da açtığınız sekmelerin sayısını içeren bir sayaç oluşturun. Bu, sayfa her yüklendiğinde artar ve sayfa her yüklendiğinde azalır. Kullanılacak olayları burada seçebilirsiniz, 'yükle' ve 'kaldır' öneririm. Boşaltma sırasında, sayaç 0'a ulaştığında yapmak istediğiniz temizleme görevlerini yapmanız gerekir, yani son sekmeyi kapatırsınız. İşte zor kısmı geliyor: Bir sayfanın yeniden yüklenmesi veya sayfa içinde gezinme ile sekmenin kapatılması arasındaki farkı anlatmanın güvenilir ve genel bir yolunu bulamadım. Dolayısıyla, depoladığınız veriler, bunun ilk sekmeniz olup olmadığını kontrol ettikten sonra yük üzerinde yeniden oluşturabileceğiniz bir şey değilse, her yenileme işleminde kaldıramazsınız. Bunun yerine, sekme sayacını artırmadan önce sessionStorage'da her yükte bir bayrak depolamanız gerekir. Bu değeri saklamadan önce, zaten bir değere sahip olup olmadığını kontrol edebilirsiniz ve eğer yoksa, bu oturuma ilk kez yüklediğiniz anlamına gelir, yani eğer yükü temizlerseniz değeri ayarlanmadı ve sayaç 0.