Að búa til forrit sem er að gera er venjulega fyrsta forritið sem þú lærir hvernig á að byggja á JavaScript en vandamálið með öllum þeim forritum er að þegar þú endurhleðir síðuna eru öll þau verkefni sem eru til staðar farin.
Það er einföld lausn þó, og það er að nota staðbundna geymslu. The góður hlutur af staðbundinni geymslu er að þú getur vistað þessar bita af gögnum á tölvu notandans þannig að þegar þeir endurhlaða síðuna þá munu öll þeirra todo vera þar og staðbundin geymsla er í raun alveg einföld þegar kemur að því að vista gögnin og gera Það er aðgengilegt á síðunni.
Staðbundin geymsla er hluti af vefur geymslu, sem sjálft er hluti af HTML5 forskriftinni. Það eru tveir möguleikar til að geyma gögn í forskriftinni:
Í einföldum skilmálum, allt sem vefur geymsla er búð sem heitir lykill / gildi pör á staðnum og ólíkt smákökum eru þessar upplýsingar viðvarandi jafnvel þótt þú lokar vafranum þínum eða slökkva á tölvunni þinni.
Ef við hugsum um að gera lista sem við þurfum er:
Þannig að HTML okkar ætti að líta svona út:
Það er nokkuð staðlað staðgengill HTML og með javascript okkar getum við fyllt allt þetta upp með dynamic efni.
Þar sem við munum nota jQuery í þessu dæmi þá ættir þú einnig að setja það í HTML skjalið þitt.
Ef við hugsum um uppbyggingu einfalt forrit sem þú þarft að gera er það fyrsta sem við þurfum að gera er að athuga hvenær notandinn smellir á bæta við hnappinn og athugaðu hvort inntakið hefur tómt gildi, eins og svo:
$('#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;}
Allt sem við gerðum var að athuga með því að smella á bæta við hnappinn og keyra einfalt próf til að athuga hvort notandi fyllti inntakið með eitthvað. Ef ekki, vekur viðvörunin djúpt inn og dvelur í 1000ms og þá hverfur. Að lokum skilum við aftur rangar þannig að vafrinn lesi ekki afganginn af handritinu og bætir enn við listann.
Það næsta sem við þurfum að gera er að setja inn lista með gildinu í inntakinu og við munum fjarlægja þetta þannig að þegar notandinn bætir við að gera það mun alltaf fara í upphaf listans og síðan vistaðu listann á staðbundin geymsla, eins og svo:
// 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;});
Eins og þú sérð er það nokkuð venjulegt jQuery og þegar það kemur að staðbundinni geymslu þurfum við að vista lykil og gildi. Lykillinn er nafn sem við setjum fyrir okkur og í þessu tilfelli kallaði ég bara 'todos' og þá þurfum við að tilgreina það sem við viljum raunverulega spara og í þessu tilfelli er það allt HTML sem er sett inn í óskráðan lista . Eins og þú sérð tókum við bara að nota jQuery og við fengum loksins falskur svo að eyðublaðið leggi ekki fram og síðunni okkar endurhleðst ekki.
Næsta skref okkar er að athuga hvort við höfum eitthvað á staðbundinni geymslu sem þegar er vistað í vélinni okkar og ef við gerum þurfum við að setja það á síðunni, svo þar sem við gaf lykilinn okkar nafnið sem við þurfum að athuga fyrir tilvist þess eins og svo:
// if we have something on local storage place thatif(localStorage.getItem('todos')) {$('#todos').html(localStorage.getItem('todos'));}
Við notuðum einfalda ef yfirlýsingu til að athuga og þá fengum við aðeins það sem við höfum á staðnum geymslu og setjum það sem HTML af óskipuðum listanum að gera.
Ef þú prófar einfaldan app og við endurhlaða síðunni getum við séð að það er þegar að vinna og allt sem við höfum skilið er að búa til aðgerðina fyrir þegar notandinn velur að hreinsa allt sem þarf að gera; Þegar það gerist munum við hreinsa öll staðbundin geymsla, endurhlaða síðuna þar sem breytingar okkar eiga sér stað og fara síðan aftur í rangar til að koma í veg fyrir kjötið fyrir framan vefslóðina eins og svo:
// clear all the local storage$('#clear').click( function() {window.localStorage.clear();location.reload();return false;});
Með þessu gert höfum við app okkar fullkomlega að vinna. Fullkóðinn lítur svona út:
$('#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'). prepend (" "+ Lýsing +" "$; '$ form') [0] .reset (); var todos = $ ('# todos'). html (); localStorage.setItem ('todos', todos); return false;}); ef (localStorage.getItem ('todos')) {$('#todos').html(localStorage.getItem('todos'));} $ ('# clear'). smelltu (virka () {window.localStorage.clear (); staðsetning.reload (); return false;});
Stuðningur við vefur geymsla er nokkuð góð fyrir HTML5 forskrift; Það er studd af öllum helstu vafra og jafnvel IE8, svo það eina sem þú gætir þurft að vera á varðbergi gagnvart IE7 ef þú ert ennþá að styðja það.
Staðbundin geymsla í litlum forritum eins og þetta getur mjög vel tekið til staðgöngu fyrir gagnagrunna. Geymsla lítið magn af gögnum þarf ekki að vera flókið.
Hvernig geymir þú gögn úr JavaScript? Viltu frekar smákökur eða gagnagrunna til staðbundinnar geymslu? Láttu okkur vita í athugasemdunum.