<!-- Always use a CDN for external libraries! i.e. https://cdnjs.com/ --><!-- The usage of CDN will help reduce net traffic thanks to browser cache --><linkrel="stylesheet" href="https://.../4.1.3/bootstrap.min.css"><scriptsrc="https://.../jquery-3.3.1.slim.min.js"></script><scriptsrc="https://.../popper.min.js"></script><scriptsrc="https://.../4.1.3/js/bootstrap.min.js"></script>
history.length// the total number of history entrieshistory.back()// go back oncehistory.back()// go back oncehistory.forward()// go forward oncehistory.go(5)// go forward 5 entrieshistory.go(-2)// go back 2 entrieshistory.pushState(null,null,'contact')// add a new entry as if you have gone one page further, with no page refreshhistory.replaceState()// replaces the current entry
do localStorage ukládáme data v podobě, s jakou budeme pracovat v kódu po extrakci z localStorage
neukládáme všechna data ale pouze klíčové informace jako identifikátor, popř. název, a další vlastní data, související data stahujeme znovu z API podle uložených informací
Příklad: nechť máme nějaké knižní záznamy a chceme je všechny uložit do localStorage
constbooks=[{"id": "0","title": "Harry Potter and the Philosopher's stone"},{"id": "1","title": "Harry Potter and the Chamber of Secrets"}...];localStorage.setItem('bookIds',JSON.stringify(books.map((book)=>book.id)));localStorage.getItem('bookIds');// ["1", "2"]
pokud budeme chtít mazat jednotlivé záznamy, tak je ukládáme nejlépe do objektu (ale ztratíme tím pořadí záznamů)
constbooks={};items.forEach((item)=>{books[item.id]=item.title;});console.log(books);// { "1": "Harry Potter and the Philosopher's stone", "2": "Harry Potter and the Chamber of Secrets" }localStorage.setItem('books',JSON.stringify(books));deletebooks["1"];console.log(books);// { "2": "Harry Potter and the Chamber of Secrets" }localStorage.setItem('books',JSON.stringify(books));deletebooks["2"];console.log(books);// { }localStorage.setItem('books',JSON.stringify(books));