HTML Local Depolama (Local Storage) Nedir?
- Html local depolama, cookielerden (çerez/kurabiye) daha etkilidir.
- Html local depolama, kullanıcının tarayıcısında bilgi depolamaya yarayan bir web uygulamasıdır.
- HTML5'den önce, uygulama bilgileri (ziyaretçi bilgileri), serverdan talep edildirdi, serverler ise bu bilgileri cookielerde depo etmek zorundaydı. Bu da server taraflı bir işlemdi. Local depolama, daha güvenlidir, daha fazla bilgi depolamaya olanak sağlar ve websitemizin performansını da düşürmez.
- Cookielerden farklıdır, bilgi depolama limiti çok daha fazladır (en az 5MB) ve bilgiler asla servera gönderilmez.
- Local depolama, her domain için ayrı bir yerde yapılır. Bir domain adresine ait bütün sayfalar aynı local depolama alanını kullanır ve gerektiğinde aynı alana ulaşır.
Tarayıcı Desteği
Aşağıdaki tabloda, web tarayıcıların hangi sürümlerinden itibaren, local depolama özelliğini desteklediğini görmekteyiz:
API | |||||
---|---|---|---|---|---|
Web Storage | 4.0 | 8.0 | 3.5 | 4.0 | 11.5 |
HTML Local Depolama Objeleri
Html local depolama özelliği, istemcide (kullanıcının tarayıcısında) depolanmak üzere iki çeşit obje sunar. Bunlar:
if(typeof(Storage) !== "undefined") {
// localStorage/sessionStorage ile ilgili kodlar...
} else {
// Üzgünüm! Web Storage (Depolama) desteği yok..
}
- window.localStorage : Bilgileri, bir silme tarihi olmadan, sonsuza dek depolar.
- window.sessionStorage: Bilgileri, tek bir oturum süresince depolar. Tarayıcı sayfası kapatıldığında, bilgiler de silinir.
if(typeof(Storage) !== "undefined") {
// localStorage/sessionStorage ile ilgili kodlar...
} else {
// Üzgünüm! Web Storage (Depolama) desteği yok..
}
localStorage Objesi
localStorage objesi, bilgileri bir silme tarihi olmadan depolar. Kullanıcı web tarayıcısını kapattığında, bilgiler silinmeyecektir. Yarın, haftaya, seneye... bilgiler tarayıcıda kayıtlı duracaktır. Örneğe dikkat edelim:
<div id="sonuc"></div>
<script>
// Tarayıcı desteği kontrolü
if (typeof(Storage) != "undefined") {
// Bilgi oluşturma
localStorage.setItem("soyad", "Kaya");
// Bilgileri geri çağırma
document.getElementById("sonuc").innerHTML = localStorage.getItem("soyad");
} else {
document.getElementById("sonuc").innerHTML = "Üzgünüm, tarayıcınız Web Storage özelliğini desteklemior...";
}
</script>
Yukarıdaki kodlara yakından bakalım:
// Bilgileri oluşturma
localStorage.lastname = "Kaya";
// Bilgileri geri çağırma
document.getElementById("sonuc").innerHTML = localStorage.lastname;
Eğer, oluşturduğumuz "soyad" bilgisini silmek istersek de şu kod kalıbını kullanacağız:
localStorage.removeItem("lastname");
Javascript bilenler anlayacaktır: veri/değeri çifti bir string depolar. İhtiyacımız olduğunda, bu verileri diğer formatlara dönüştürmeyi unutmamalıyız.
<div id="sonuc"></div>
<script>
// Tarayıcı desteği kontrolü
if (typeof(Storage) != "undefined") {
// Bilgi oluşturma
localStorage.setItem("soyad", "Kaya");
// Bilgileri geri çağırma
document.getElementById("sonuc").innerHTML = localStorage.getItem("soyad");
} else {
document.getElementById("sonuc").innerHTML = "Üzgünüm, tarayıcınız Web Storage özelliğini desteklemior...";
}
</script>
Yukarıdaki kodlara yakından bakalım:
- Bilgi oluşturma kısmındaki: localStorage.setItem("lastname", "Smith"); kodu veri/değeri bilgi çiftini oluşturur. Bu çiftte; veri="soyad" ve değeri="Kaya" olarak girilmiştir.
- Bilgileri geri çağırma kısmında, oluşturduğumuz soyad verisinin değerini aldık ve "sonuc" adlı html elemanının içeriğine gönderdik.
// Bilgileri oluşturma
localStorage.lastname = "Kaya";
// Bilgileri geri çağırma
document.getElementById("sonuc").innerHTML = localStorage.lastname;
Eğer, oluşturduğumuz "soyad" bilgisini silmek istersek de şu kod kalıbını kullanacağız:
localStorage.removeItem("lastname");
Javascript bilenler anlayacaktır: veri/değeri çifti bir string depolar. İhtiyacımız olduğunda, bu verileri diğer formatlara dönüştürmeyi unutmamalıyız.
Aşağıdaki kod, bir kullanıcın butonlarımızdan birine kaç defa bastığını sayar. Bu kodda, string olan değer bilgisi, number formatına dönüştürülmüştür. Böylece saymak mümkün olmuştur:
<!DOCTYPE html>
<html>
<head>
<script>
function tiklamaSayisi() {
if(typeof(Storage) !== "undefined") {
if (localStorage.clickcount) {
localStorage.clickcount = Number(localStorage.clickcount)+1;
} else {
localStorage.clickcount = 1;
}
document.getElementById("sonuc").innerHTML = "Bu butona " + localStorage.clickcount + " defa tıkladınız.";
} else {
document.getElementById("sonuc").innerHTML = "Üzgünüm, tarayıcınız web storage özelliğini desteklemiyor...";
}
}
</script>
</head>
<body>
<p><button onclick="tiklamaSayisi()" type="button">Buraya tıklayınız!</button></p>
<div id="sonuc"></div>
<p>Butona tıklayın ve sayının arttığını görün!</p>
<p>Tarayıcınızı veya pencerenizi kapatıp tekrar deneyin ve sayının kaldığı yerden devam ettiğini görün.(Sıfırlanmayacaktır.)</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script>
function tiklamaSayisi() {
if(typeof(Storage) !== "undefined") {
if (localStorage.clickcount) {
localStorage.clickcount = Number(localStorage.clickcount)+1;
} else {
localStorage.clickcount = 1;
}
document.getElementById("sonuc").innerHTML = "Bu butona " + localStorage.clickcount + " defa tıkladınız.";
} else {
document.getElementById("sonuc").innerHTML = "Üzgünüm, tarayıcınız web storage özelliğini desteklemiyor...";
}
}
</script>
</head>
<body>
<p><button onclick="tiklamaSayisi()" type="button">Buraya tıklayınız!</button></p>
<div id="sonuc"></div>
<p>Butona tıklayın ve sayının arttığını görün!</p>
<p>Tarayıcınızı veya pencerenizi kapatıp tekrar deneyin ve sayının kaldığı yerden devam ettiğini görün.(Sıfırlanmayacaktır.)</p>
</body>
</html>
Yukarıdaki kodların nasıl çalıştığını görmek için aşağıya bakınız:
Tarayıcınızı veya pencerenizi kapatıp tekrar deneyin ve sayının kaldığı yerden devam ettiğini görün.(Sıfırlanmayacaktır.)
sessionStorage Objesi
sessionStorage objesi, localStorage objesi ile aynı görevi yapar, tek farkı sadece bir oturum için geçerli olmasıdır. Kullanıcının tarayıcısına gönderdiğimiz bilgi, kullanıcı pencereyi kapattığında otomatik olarak silinecektir.
Aşağıdaki örnek, kullanıcının tek bir oturumda, bir butona kaç defa bastığını sayar:
<!DOCTYPE html>
<html>
<head>
<script>
function tiklamaSayisi() {
if(typeof(Storage) !== "undefined") {
if (sessionStorage.clickcount) {
sessionStorage.clickcount = Number(sessionStorage.clickcount)+1;
} else {
sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "Bu butona " + sessionStorage.clickcount + " defa tıkladınız.";
} else {
document.getElementById("sonuc").innerHTML = "Üzgünüm, tarayıcınız web storage özelliğini desteklemiyor...";
}
}
</script>
</head>
<body>
<p><button onclick="clickCounter()" type="button">Lütfen tıklayınız</button></p>
<div id="result"></div>
<p>Butona tıklayın ve sayının arttığını görün!</p>
<p>Tarayıcınızı veya pencerenizi kapatıp tekrar deneyin ve sayının sıfırlandığını görün.</p>
</body>
</html>
Bu örnek, bir önceki ile çok benzer olduğu için uygulamasını size bırakıyoruz.
Hiç yorum yok:
Yorum Gönder