Bagaimana cara menyimpan data JSON dalam cookie?
Data JSON saya terlihat seperti ini
$("#ArticlesHolder").data('15', {name:'testname', nr:'4',price:'400'});
$("#ArticlesHolder").data('25', {name:'name2', nr:'1', price:'100'});
$("#ArticlesHolder").data('37', {name:'name3', nr:'14', price:'60'});
Dan saya ingin melakukan sesuatu seperti
var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());
dan untuk mengambil data saya ingin memuatnya ke dalam $("#ArticlesHolder")
like
$.each($.cookie("basket-data"), function(i,e){
$("#ArticlesHolder").data(i, e);
});
apakah ada yang tahu apakah saya berada di jalur yang benar atau haruskah ini dilakukan dengan cara lain? Sederhananya, bagaimana cara menempatkan dan menarik data json dari cookie?
jquery
cookies
jquery-cookie
Marthin
sumber
sumber
Jawaban:
Anda dapat membuat serial data sebagai JSON, seperti ini:
Kemudian untuk mendapatkannya dari cookie:
Ini bergantung pada
JSON.stringify()
danJSON.parse()
untuk membuat serial / deserialisasi objek data Anda, untuk browser yang lebih lama (IE <8) termasuk json2.js untuk mendapatkanJSON
fungsionalitasnya. Contoh ini menggunakan plugin cookie jQuerysumber
cookie
adalah fungsi bawaan di jQuery. Sepertinya tidak. atau sudah usang ..? jika itu adalah plugin yang saya temukan, menautkan ke itu akan sangat bagus untuk menghindari kebingungan ...,
(koma) dapat menyebabkan cookie tidak disetel dengan benar dalam safari dan browser lain.Sekarang sudah tidak perlu menggunakan
JSON.stringify
secara eksplisit. Jalankan saja baris kode iniSetelah itu Anda dapat menyimpan objek apa pun dalam cookie, yang akan secara otomatis diubah menjadi JSON dan kembali dari JSON saat membaca cookie.
Namun library JSON tidak disertakan dengan jquery.cookie, jadi Anda harus mendownloadnya sendiri dan memasukkannya ke halaman html sebelum jquery.cookie.js
sumber
$cookie.json = true
dapat menyebabkan konflik dengan cookie Anda yang lain. Jadi berhati-hatilah saat menggunakan ini pada proyek yang sudah menggunakan cookie di tempat lain!gunakan
JSON.stringify(userData)
untuk menutupi objek json ke string.dan untuk kembali dari penggunaan cookie
JSON.parse()
sumber
Bukan praktik yang baik untuk menyimpan nilai yang dikembalikan dari
JSON.stringify(userData)
ke cookie; ini dapat menyebabkan bug di beberapa browser.Sebelum menggunakannya, Anda harus mengubahnya menjadi base64 (menggunakan
btoa
), dan saat membacanya, konversikan dari base64 (menggunakanatob
).sumber
{
atau}
, dan diam-diam melepaskan cookie apa pun yang mengikuti cookie yang ditolak di header cookie.Dengan membuat data menjadi serial sebagai JSON dan Base64, ketergantungan jquery.cookie.js:
:)
sumber
Coba yang ini: https://github.com/tantau-horia/jquery-SuperCookie
Gunakan saja:
sumber