Bir yapılacaklar uygulaması oluşturmak genellikle JavaScript'te nasıl oluşturulacağını öğrendiğiniz ilk uygulamadır, ancak tüm bu uygulamalardaki sorun, sayfayı yeniden yüklediğinizde tüm yapılacaklar kaybolur.
Yine de basit bir çözüm var ve bu da yerel depolama alanını kullanmak. Yerel depolama ile ilgili iyi bir şey, bu veri bitlerini kullanıcının bilgisayarına kaydedebilmenizdir, böylece sayfayı yeniden yüklediklerinde, tüm todo'ları hala orada olacaklar ve verilerin saklanması söz konusu olduğunda yerel depolama aslında oldukça basittir. sayfada mevcut.
Yerel depolama alanı, HTML5 spesifikasyonunun bir parçası olan web depolama biriminin bir parçasıdır. Belirtimde veri depolamak için iki seçenek vardır:
Basit bir şekilde, tüm bu web depolama alanı, yerel / anahtar çiftlerini yerel olarak adlandırılan mağazadır ve çerezleri farklı olarak tarayıcınızı kapatsanız veya bilgisayarınızı kapatsanız bile bu veriler devam eder.
Bir yapılacaklar listesi hakkında düşünürsek, ihtiyacımız olan şey:
Yani HTML’imiz böyle bir şeye benzemeli:
Oldukça standart bir yer tutucu HTML'si ve javascript ile tüm bunları dinamik içerikle doldurabiliriz.
Bu örnekte jQuery kullanacağımızdan, HTML belgenize de eklemelisiniz.
Basit bir yapılacaklar uygulamasının yapısını düşünürsek, yapmamız gereken ilk şey, kullanıcı ekleme düğmesine tıkladığında ve girişin boş bir değere sahip olup olmadığını kontrol etmektir:
$('#add').click( function() {var Description = $('#description').val();//if the to-do is emptyif($("#description").val() == '') {$('#alert').html("Warning! You left the to-do empty");$('#alert').fadeIn().delay(1000).fadeOut();return false;}
Tek yaptığımız, ekleme düğmesine bir kez tıklamak ve kullanıcının girişi bir şeyle doldurup doldurmadığını kontrol etmek için basit bir test yapmaktı. Değilse, uyarı divi söner ve 1000 ms için kalır ve sonra söner. Sonunda, tarayıcı, komut dosyasının geri kalanını okumadığı ve liste öğesini ekleyeceği için yanlış döndürüyoruz.
Yapmamız gereken bir sonraki şey, girişteki değerle bir liste öğesi eklemektir ve biz bunu hazırlayacağız, böylece kullanıcı bir yapılacaklar eklediğinde, her zaman listenin başına gidip o liste öğesini Yerel depolama, şöyle ki:
// add the list item$('#todos').prepend("" + Description + " ");// delete whatever is in the input$('#form')[0].reset();var todos = $('#todos').html();localStorage.setItem('todos', todos);return false;});
Gördüğünüz gibi oldukça standart jQuery ve yerel depolama söz konusu olduğunda bir anahtar ve bir değer kaydetmemiz gerekiyor. Anahtar, kendimiz için belirlediğimiz bir isim ve bu durumda 'todos' dedim ve daha sonra kaydetmek istediğimiz şeyi belirtmemiz gerekiyor ve bu durumda, todos unordered listesinin içine yerleştirilmiş olan tüm HTML'ler . Gördüğünüz gibi jQuery'yi kullanarak bunu yakaladık ve sonunda formun gönderilmemesi ve sayfamızın yeniden yüklenmemesi için yanlış döndük.
Bir sonraki adımımız, makinemizde zaten kayıtlı olan yerel depolama biriminde bir şey olup olmadığını kontrol etmektir ve eğer bunu yaparsak, bu sayfaya yerleştirmemiz gerekir. Bu nedenle, anahtarımızı todos olarak verdiğimiz için varlığını kontrol etmemiz gerekir:
// if we have something on local storage place thatif(localStorage.getItem('todos')) {$('#todos').html(localStorage.getItem('todos'));}
Kontrol etmek için basit bir ifade kullandık ve sonra yerel depolamada sahip olduğumuz şeyi aldık ve bunu yapılacaklar sırasız listenin HTML'si olarak yerleştirdik.
Basit uygulamamızı test ederseniz ve zaten çalıştığını gördüğümüz sayfayı yeniden yükledik ve geriye kalan tek şey, kullanıcının tüm yapılacakları temizlemek için seçtiği işlevi yaratmaktır; Bu olduğunda, tüm yerel depolama alanlarını temizleriz, değişikliklerin yürürlüğe girmesi için sayfayı yeniden yükler ve ardından URL’nin önündeki karma’yı önlemek için false değerini döndürür:
// clear all the local storage$('#clear').click( function() {window.localStorage.clear();location.reload();return false;});
Bu bitti ile bizim app tamamen çalışıyoruz. Tam kod şöyle görünür:
$('#add').click( function() {var Description = $('#description').val();if($("#description").val() == '') {$('#alert').html("Warning! You left the to-do empty");$('#alert').fadeIn().delay(1000).fadeOut();return false;} $ ( '# Todos'). Başa getirebilir (" "+ Açıklama +" "); $ ('# form') [0] .reset (); var todos = $ ('# todos'). html (); localStorage.setItem ('todos', todos); false döndürür;}); if (localStorage.getItem ( 'todos')) {$('#todos').html(localStorage.getItem('todos'));} $ ('# clear'). tıklatın (function () {window.localStorage.clear (); location.reload (); false;});
Web depolama desteği, bir HTML5 spesifikasyonu için oldukça iyidir; tüm büyük tarayıcılar ve hatta IE8 tarafından desteklenmektedir, bu yüzden hala dikkatli olmanız gerekebilecek tek şey, hala destekliyorsanız IE7'dir.
Bunun gibi küçük uygulamalarda yerel depolama, veritabanlarının yerine geçebilir. Küçük miktarlardaki verilerin saklanması karmaşık olmamalıdır.
Verileri JavaScript’ten nasıl saklıyorsunuz? Çerezleri veya veritabanlarını yerel depolamaya mı tercih edersiniz? Yorumlarda bize bildirin.
Öne çıkan görsel / küçük resim, depolama resmi Shutterstock üzerinden.