LocalForage: рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕реЗ рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг

рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рднрд╛рдЧ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИред рддреБрдо рднреА рдПрдордкреА 3 рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдиреЗ рдХрд╛рдлреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рддрдХ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЦрдВрдбрд┐рдд рд╣реИрдВред

рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдЯреЛрд░реЗрдЬ рдзреАрдорд╛ рд╣реИ рдФрд░ рдмреНрд▓реЙрдмреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред IndexedDB рдФрд░ WebSQL рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ, рддреЗрдЬ, рдФрд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдмрд▓реНрдХрд┐ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рди рддреЛ IndexedDB рдФрд░ рди рд╣реА WebSQL рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдмрджрд▓реЗрдЧреАред

рдпрджрд┐ рдЖрдкрдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдореЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдФрд░ рдЖрдкрдХрд╛ рд╕рд┐рд░ рдЗрд╕ рд╕реЗ рдЧреЛрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ - рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рднреА рд╣реИред рдореЛрдЬрд╝рд┐рд▓рд╛ рдореЗрдВ рд╣рдордиреЗ рд▓реЛрдХрд▓рдлреЛрд░рдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓рд┐рдЦрд╛, рдЬреЛ рдХрд┐рд╕реА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред

рдлреЛрд░рд╕реНрдХреНрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдиреЗ рдореБрдЭреЗ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рднреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рдЕрдкрдиреА рддреНрд╡рдЪрд╛ рдкрд░ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдХрд▓рдлреНрд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╢рд╛рдпрдж рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдЧрд╛ред

рд▓реЛрдХрд▓рдлреНрд░реЙрдЬ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдорд╛рди рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╣реА рдмреЗрд╕рд┐рдХ рдЧреЗрдЯ, set , remove , clear рдФрд░ length рдореЗрдердб рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░ рд╣реИрдВ:


IndexedDB рдФрд░ WebSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдкреАрдЖрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рдХреЙрд▓ get/set рдХреЙрд▓ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЖрдкрдХреЛ рдХреЙрд▓рдмреИрдХ рд╕реЗ рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЗ рдмрд┐рдирд╛ рд╕реНрд╡рдЪреНрдЫ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рдХреЙрд▓рдмреИрдХ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╛рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЛ, рдореБрдЭреЗ рджрд┐рдЦрд╛рдУ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!


рдкрд╛рд░рдВрдкрд░рд┐рдХ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реА рдПрдкреАрдЖрдИ рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВ:

 //  ,      var config = { fullName: document.getElementById('name').getAttribute('value'), userId: document.getElementById('id').getAttribute('value') }; //   localStorage.setItem('config', JSON.stringify(config)); //      var config = JSON.parse(localStorage.getItem('config')); 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рд╕рднреА рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рдм рдХреБрдЫ рдХреНрд░рдордмрджреНрдз JSON рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рддреБрд░рдВрдд рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рд▓реЛрдХрд▓рдлреНрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛


рд▓реЛрдХрд▓рдлреНрд░реЙрдЧрд░ рдПрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рджреЛрдиреЛрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реИред рдЗрдВрдбреЗрдХреНрд╕рдбреАрдбреАрдмреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реИ, рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред

рдХреЛрдб рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛:

 // IndexedDB. var db; var dbName = "dataspace"; var users = [ {id: 1, fullName: 'Matt'}, {id: 2, fullName: 'Bob'} ]; var request = indexedDB.open(dbName, 2); request.onerror = function(event) { //  . }; request.onupgradeneeded = function(event) { db = event.target.result; var objectStore = db.createObjectStore("users", { keyPath: "id" }); objectStore.createIndex("fullName", "fullName", { unique: false }); objectStore.transaction.oncomplete = function(event) { var userObjectStore = db.transaction("users", "readwrite").objectStore("users"); } }; //  ,   ,      var transaction = db.transaction(["users"], "readwrite"); // -        transaction.oncomplete = function(event) { console.log("All done!"); }; transaction.onerror = function(event) { //     }; var objectStore = transaction.objectStore("users"); for (var i in users) { var request = objectStore.add(users[i]); request.onsuccess = function(event) { //         console.log(event.target.result); }; } 


рд▓реЛрдХрд▓рдлреНрд░реЗрдЬ рдХреЛрдб:

 //     var users = [ {id: 1, fullName: 'Matt'}, {id: 2, fullName: 'Bob'} ]; localForage.setItem('users', users, function(result) { console.log(result); }); 

WebSQL рд╡рд╛рд▓рд╛ рдХреЛрдб IndexedDB рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрдо рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рднреА рд╕реНрдерд╛рдиреАрдп рдкрд╛рда рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд╛рда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╕рд┐рд░реНрдл рддрд╛рд░ рдирд╣реАрдВ


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдпрд╛ рди рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╛рда рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕рдХрд╛ рдЕрд╡рддрд╛рд░ рднреАред рд╕реНрдерд╛рдиреАрдп рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 //   AJAX- var request = new XMLHttpRequest(); // ,      id=1 request.open('GET', "/users/1/profile_picture.jpg", true); request.responseType = 'arraybuffer'; //   ,    request.addEventListener('readystatechange', function() { if (request.readyState === 4) { // readyState DONE //    .  localStorage   localForage.setItem('user_1_photo', request.response, function() { //  ,  . }); } }); request.send(); 

рдЖрдк рдХреЛрдб рдХреА рд╕рд┐рд░реНрдл рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рдПрдХ рдлреЛрдЯреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 localForage.getItem('user_1_photo', function(photo) { //  data URI   -     img. console.log(photo); }); 

рдХреЙрд▓рдмреИрдХ рдФрд░ рд╡рд╛рджреЗ


рдпрджрд┐ рдЖрдкрдХреЛ рдХреЙрд▓рдмреИрдХ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк ES6 рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВрдЧреЗ рддреЛ рдпрд╣ рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦреЗрдЧрд╛:

 localForage.getItem('user_1_photo').then(function(photo) { //  data URI   -     img. console.log(photo); }); 

рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рдХреГрддреНрд░рд┐рдо рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдЗрд╕ рд╢реИрд▓реА рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдпрд╣рд╛рдБ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ ред

рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛


рд▓реЛрдХрд▓рдлреНрд░реЙрдЧ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред IndexedDB Safari ((IE 10+, IE Mobile 10+, Firefox 10+, Android 25+ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕), Chrome 23+, Android 32+ рдХреЗ рд▓рд┐рдП Chrome, Opera 15+) рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред Safari рдФрд░ рдПрдХ рдорд╛рдирдХ Android рдмреНрд░рд╛рдЙрдЬрд╝рд░ ()ред 2.1+) WebSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд▓реЛрдХрд▓рдлреНрд░реЙрдЬ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрднреА рднреА рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд┐рдирд╛ рдмреНрд▓рдмреНрд╕ рдФрд░ рдмрд╣реБрдд рдзреАрдореЗред рд▓реЗрдХрд┐рди JSON рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдХрдо рд╕реЗ рдХрдо рд░реВрдкрд╛рдВрддрд░рдг рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрднреА рднреА рдмрд╣реБрдд рдпреБрд╡рд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХреЗрд╡рд▓ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ, рдпрджрд┐ рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдФрд░ рдкреИрдЪ рднреЗрдЬреЗрдВ !

Source: https://habr.com/ru/post/In212709/


All Articles