View Full Version : سوال: کار با web storage در html5
BeginnerProgrammer
شنبه 23 شهریور 1392, 17:42 عصر
سلام دوستان برنامه نویس
کسی تا حالا با امکانات html5 یعنی web Storage کار کرده؟ میشه با اون یه پایگاه داده از سوالات ذخیره کرد؟
jalil_gh
شنبه 23 شهریور 1392, 20:18 عصر
الان به غیر از کوکی چند روش برای ذخیره اطلاعات سمت کلاینت هست.
localStorage
sessionStorage
web sql
indexedDB
دوتای اولی ساده هستن و فقط میتونن دادهها رو به صورت یک رشته ذخیره کنن. از این دوتا پشتیبانی خوبی تو مرورگرها میشه حتی ie8 هم از اون پشتیبانی میکنه.
دوتای آخری خیلی پیشرفته هستن کار یک دیتابیس رو انجام میدن ولی پشتیبانی از اونا فعلا خوب نیست.
پس با این اوصاف میمونه دوتای اولی.
از این دوتا هم sessionStorage به کار نمیاد چون وقتی صفحه بسته میشه اطلاعات ذخیره شده با اون هم پاک میشه.
حالا فقط میمونه localStorage.
طبق استاندارد شما میتونید تا ۵ مگ اطلاعات رو با استفاده از اون ذخیره کنید. ولی همونطور که گفته شد اطلاعات به صورت رشته ذخیره و بازیابی میشه. ولی شما میتونید با متدهای JSON.stringify و JSON.parse راحت اطلاعات پیچیدهای رو باهاش ذخیره کنید.
البته مشکلی هم که هست اینه که کاربر هر وقت دلش خواست میتونه کل این اطلاعات رو پاک کنه.
BeginnerProgrammer
شنبه 23 شهریور 1392, 23:28 عصر
ممنون از پاسختون ، دیتایی که ذخیره می کنیم چطوری بهش دسترسی داشته باشیم یعنی مکان مشخصی داره؟ مثلا میتونیم یه سری سوال تو این storage ذخیره کنیم بعد بخونیمش؟ من کدایی که تو نت بودو ( تعداد کمی البته ) خوندم ولی به نتیجه ای نرسیدم
jalil_gh
یک شنبه 24 شهریور 1392, 08:30 صبح
اینکه کجا ذخیره میشه بستگی به مرورگر داره و جای مشخصی فکر نمیکنم داشته باشه. ولی کار کردن باهاش خیلی راحته. اطلاعات هم به قول خودمون به صورت key value ذخیره میشه.
مثلا اگه بخواهید رشته "this is a test" رو تو اون ذخیره کنید میتونید از این روش استفاده کنید.
localStorage.setItem('test', 'this is a test');
با این کار رشته "this is a test" تو localStorage ذخیره میشه.
حالا اگه بخواییم این اطلاعات رو دوباره به دست میاریم از متد getItem استفاده میکنیم.
var data = localStorage.getItem('test');
با این کار رشته "this is a test" تو متغیر data قرار میگیره و میتونیم ازش استفاده کنیم.
حالا اگه بخواییم یه آبجکت یا یه آرایه رو ذخیره کنیم میتونیم اول با استفاده از متد JSON.stringify اونو به رشته تبدیل کنیم و بعد ذخیره کنیم. برای استفاده دوباره هم میتونیم اونو از localStorage به صورت رشته دریافت کنیم و با استفاده از متد JSON.parse اونو به یک آبجکت تبدیل کنیم و ازش استفاده کنیم.
var data = [
"first question",
"second question",
"third question",
"forth question"
];
// save the data
localStorage.setItem('data', JSON.stringify(data));
// now get the data
var storedData = JSON.parse(localStorage.getItem('data'));
// storedData is now an array of questions
for (var i = 0; i < storedData.length; i++) {
console.log(storedData[i]);
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.