এই উদাহরণে, ব্যবহারকারী যদি ডার্ক মোড চালু করে, তখন localStorage-এ সেট করা হয় যে ডার্ক মোড সক্রিয় আছে। ব্রাউজার বন্ধ করার পরেও ডার্ক মোড সক্রিয় থাকবে যতক্ষণ না এটি বন্ধ করা হয়।

উপসংহার

Web Storage API হল একধরনের ক্লায়েন্ট-সাইড স্টোরেজ যা ডেটা ব্রাউজারে সংরক্ষণ এবং অ্যাক্সেস করার জন্য ব্যবহৃত হয়। এটি ব্যবহার করে আপনি session বা long-term ডেটা সংরক্ষণ করতে পারেন। localStorage এবং sessionStorage আপনাকে ব্যবহারকারীর ইন্টারঅ্যাকশন উন্নত করতে সাহায্য করে, বিশেষত এমন ক্ষেত্রে যেখানে server-side অনুরোধ ছাড়া ডেটা ম্যানেজ করা দরকার।

","image":"http://www.luping.net/uploads/20241014/1728900731670cee7b89109.jpg","datePublished":"2024-11-08T09:22:12+08:00","dateModified":"2024-11-08T09:22:12+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 通过示例解释 Web 存储 API

通过示例解释 Web 存储 API

发布于2024-11-08
浏览:113

Web Storage API Explained with Examples

Web Storage API: বিস্তারিত আলোচনা

Web Storage API হলো জাভাস্ক্রিপ্টের একটি শক্তিশালী API যা ব্রাউজারে ব্যবহারকারীর ডেটা স্টোর করার জন্য ব্যবহৃত হয়। এটি client-side storage-এর মাধ্যমে key-value pair আকারে ডেটা সংরক্ষণ করতে সাহায্য করে। Web Storage API-এর দুটি প্রধান ভাগ রয়েছে:

  1. localStorage: ডেটা ব্রাউজার বন্ধ করার পরেও থাকে।
  2. sessionStorage: ডেটা শুধুমাত্র সেশন (ব্রাউজার ট্যাব বা উইন্ডো) পর্যন্ত থাকে, অর্থাৎ সেশন শেষ হলে (ব্রাউজার বা ট্যাব বন্ধ করলে) ডেটা মুছে যায়।

Web Storage API কেন ব্যবহার করবেন?

  • Client-side ডেটা সংরক্ষণ: এটি ব্যবহার করে সার্ভারকে অপ্রয়োজনীয় ডেটা পাঠানো ছাড়া client-side-এ ডেটা সংরক্ষণ করা যায়।
  • Session এবং Local Storage: Web Storage API session-ভিত্তিক ডেটা সংরক্ষণ বা দীর্ঘমেয়াদী ডেটা সংরক্ষণের দুটি আলাদা পদ্ধতি সরবরাহ করে।
  • কুকিজের চেয়ে উন্নত: কুকিজের তুলনায় Web Storage API নিরাপদ এবং দ্রুত। এটি প্রতি সার্ভার অনুরোধে ডেটা পাঠায় না এবং কুকিজের সীমাবদ্ধতা ছাড়াই বেশি ডেটা সংরক্ষণ করতে পারে।
  • সহজ API: এটি ব্যবহার করা খুবই সহজ এবং key-value pair আকারে ডেটা ম্যানেজ করে।

Web Storage API-এর দুইটি ভাগ:

1. localStorage

localStorage হলো ব্রাউজারের ডেটা স্টোর করার একটি পদ্ধতি, যা ব্রাউজার বন্ধ করলেও থেকে যায়। এটি বেশিরভাগ সময় ব্যবহার করা হয় তখন, যখন আপনি দীর্ঘ সময়ের জন্য ডেটা সংরক্ষণ করতে চান।

localStorage-এর বৈশিষ্ট্য:
  • Persistent Storage: ডেটা ব্রাউজার বন্ধ করার পরেও থাকে।
  • স্টোরেজ সাইজ: সাধারণত প্রতি origin-এ ৫ থেকে ১০ MB পর্যন্ত ডেটা সংরক্ষণ করা যায়।
  • Key-value pair আকারে ডেটা সংরক্ষণ করা হয়।
localStorage মেথড:
  • localStorage.setItem(key, value): এটি একটি key-value pair সংরক্ষণ করে।
  • localStorage.getItem(key): একটি key-এর জন্য সংরক্ষিত value ফেরত দেয়।
  • localStorage.removeItem(key): নির্দিষ্ট key-এর ডেটা মুছে দেয়।
  • localStorage.clear(): localStorage-এ সংরক্ষিত সমস্ত ডেটা মুছে দেয়।
উদাহরণ:
// ডেটা সংরক্ষণ
localStorage.setItem('username', 'JohnDoe');

// ডেটা অ্যাক্সেস
const user = localStorage.getItem('username');
console.log(user); // Output: JohnDoe

// ডেটা মুছে ফেলা
localStorage.removeItem('username');

// সমস্ত ডেটা মুছে ফেলা
localStorage.clear();

2. sessionStorage

sessionStorage হল একইভাবে key-value pair আকারে ডেটা সংরক্ষণ করে, তবে এটি session-ভিত্তিক। যখন ব্রাউজারের ট্যাব বা উইন্ডো বন্ধ হয়, sessionStorage-এর ডেটা মুছে যায়।

sessionStorage-এর বৈশিষ্ট্য:
  • Session-based Storage: ডেটা শুধুমাত্র session পর্যন্ত থাকে। ট্যাব বা উইন্ডো বন্ধ করলে ডেটা মুছে যায়।
  • স্টোরেজ সাইজ: সাধারণত প্রতি origin-এ ৫ থেকে ১০ MB পর্যন্ত ডেটা সংরক্ষণ করা যায়।
  • Key-value pair আকারে ডেটা সংরক্ষণ করা হয়।
sessionStorage মেথড:
  • sessionStorage.setItem(key, value): একটি key-value pair session-এর জন্য সংরক্ষণ করে।
  • sessionStorage.getItem(key): একটি key-এর জন্য session-এ সংরক্ষিত value ফেরত দেয়।
  • sessionStorage.removeItem(key): নির্দিষ্ট key-এর ডেটা মুছে দেয়।
  • sessionStorage.clear(): sessionStorage-এর সমস্ত ডেটা মুছে দেয়।
উদাহরণ:
// ডেটা সংরক্ষণ
sessionStorage.setItem('sessionKey', 'SessionValue');

// ডেটা অ্যাক্সেস
const sessionData = sessionStorage.getItem('sessionKey');
console.log(sessionData); // Output: SessionValue

// ডেটা মুছে ফেলা
sessionStorage.removeItem('sessionKey');

// সমস্ত ডেটা মুছে ফেলা
sessionStorage.clear();

localStorage এবং sessionStorage-এর মধ্যে পার্থক্য

বৈশিষ্ট্য localStorage sessionStorage
ডেটার স্থায়িত্ব ডেটা ব্রাউজার বন্ধ করার পরেও থাকে। ডেটা শুধুমাত্র session পর্যন্ত থাকে। ট্যাব/উইন্ডো বন্ধ হলে মুছে যায়।
স্টোরেজ সাইজ ৫ থেকে ১০ MB, নির্ভর করে ব্রাউজার এবং origin-এর উপর। ৫ থেকে ১০ MB, নির্ভর করে ব্রাউজার এবং origin-এর উপর।
ব্যবহার ক্ষেত্র দীর্ঘ সময়ের জন্য ডেটা সংরক্ষণে ব্যবহৃত হয়। session-specific ডেটা সংরক্ষণে ব্যবহৃত হয়।
মেমরি পরিষ্কার করা ব্যবহারকারী নিজে বা স্ক্রিপ্টের মাধ্যমে clear না করলে ডেটা থাকে। ট্যাব বা উইন্ডো বন্ধ করার সাথে সাথে মুছে যায়।

Web Storage API এর সীমাবদ্ধতা

  1. সাইজ সীমাবদ্ধতা: সাধারণত ৫ থেকে ১০ MB পর্যন্ত ডেটা সংরক্ষণ করা যায়, যা বড় ডেটা সংরক্ষণের জন্য যথেষ্ট নয়।
  2. Security Risks: sensitive ডেটা (যেমন, পাসওয়ার্ড বা ব্যক্তিগত তথ্য) সংরক্ষণ করার জন্য এটি নিরাপদ নয়। কারণ, এটি সহজেই জাভাস্ক্রিপ্ট কোডের মাধ্যমে অ্যাক্সেস করা যায়।
  3. Single-origin Restriction: Web Storage API কেবলমাত্র একই origin-এর জন্য ডেটা অ্যাক্সেস করতে পারে। ভিন্ন origin বা domain-এ ডেটা শেয়ার করা যায় না।

Web Storage API vs Cookies

বৈশিষ্ট্য Web Storage API Cookies
স্টোরেজ সাইজ ৫ থেকে ১০ MB প্রতি কুকি ৪ KB এর বেশি নয়।
প্রতি রিকোয়েস্টে পাঠানো সার্ভার অনুরোধে ডেটা পাঠানো হয় না। প্রতিটি সার্ভার অনুরোধের সাথে কুকি পাঠানো হয়।
API ব্যবহার সহজ API মেথড যেমন, setItem, getItem। কুকি হ্যান্ডলিং তুলনামূলকভাবে জটিল।
ডেটার স্থায়িত্ব localStorage ডেটা ব্রাউজার বন্ধ করার পরেও থাকে। কুকির সময়সীমা অনুযায়ী স্থায়ী হয়।

ব্যবহারিক উদাহরণ: ডার্ক মোড সেভ করা



  Dark Mode Example


  

Toggle Dark Mode

এই উদাহরণে, ব্যবহারকারী যদি ডার্ক মোড চালু করে, তখন localStorage-এ সেট করা হয় যে ডার্ক মোড সক্রিয় আছে। ব্রাউজার বন্ধ করার পরেও ডার্ক মোড সক্রিয় থাকবে যতক্ষণ না এটি বন্ধ করা হয়।

উপসংহার

Web Storage API হল একধরনের ক্লায়েন্ট-সাইড স্টোরেজ যা ডেটা ব্রাউজারে সংরক্ষণ এবং অ্যাক্সেস করার জন্য ব্যবহৃত হয়। এটি ব্যবহার করে আপনি session বা long-term ডেটা সংরক্ষণ করতে পারেন। localStorage এবং sessionStorage আপনাকে ব্যবহারকারীর ইন্টারঅ্যাকশন উন্নত করতে সাহায্য করে, বিশেষত এমন ক্ষেত্রে যেখানে server-side অনুরোধ ছাড়া ডেটা ম্যানেজ করা দরকার।

版本声明 本文转载于:https://dev.to/rsmacademybd/web-storage-api-explained-with-examples-4nph?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8表中将latin1字符转换为utf8 ,您遇到了一个问题,其中含义的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致电。为了解决此问题,您正在尝试使用“ mb_convert_encoding”和“ iconv”转换受...
    编程 发布于2025-04-18
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-04-18
  • 为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    Class 'ZipArchive' Not Found Error While Installing Archive_Zip on Linux ServerSymptom:When attempting to run a script that utilizes the ZipAr...
    编程 发布于2025-04-18
  • Codewars - 删除超过n次出现的元素
    Codewars - 删除超过n次出现的元素
    [2 我在本系列中发布了CODEWARS的挑战和我的思考过程。我会尽可能使用JS和节点18。只是为了清楚起见,我要合理地利用它们。 “如果元素出现超过n次,则删除出现”。本质上,在数组中间修剪部分,而不会更改顺序。 函数deletenth(arr,n){ 令counter = {“ top”:...
    编程 发布于2025-04-18
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“检测”中的错误:在功能检测中。”当Face Cascade分类器(即面部检测至关重要的组件)未正确加载时,通常会出现此错误。要解决此问题,必须...
    编程 发布于2025-04-18
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-04-18
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-04-18
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本编号的替代方法,它是使用以下语法:获取最新版本:未压缩)While these legacy URLs still remain in use, it is recommended ...
    编程 发布于2025-04-18
  • Python Day函数详解:含义、类型及数据类型
    Python Day函数详解:含义、类型及数据类型
    name = input("What is your name?") print("Welcome to Python", name) Use text editor to type syntax and save with extension .py and then to run this sy...
    编程 发布于2025-04-18
  • 编译器报错“usr/bin/ld: cannot find -l”解决方法
    编译器报错“usr/bin/ld: cannot find -l”解决方法
    错误:“ usr/bin/ld:找不到-l “ 此错误表明链接器在链接您的可执行文件时无法找到指定的库。为了解决此问题,我们将深入研究如何指定库路径并将链接引导到正确位置的详细信息。添加库搜索路径的一个可能的原因是,此错误是您的makefile中缺少库搜索路径。要解决它,您可以在链接器命令中添加...
    编程 发布于2025-04-18
  • 为什么我的Cona命令在安装Anaconda后不起作用?
    为什么我的Cona命令在安装Anaconda后不起作用?
    尽管成功安装了anaconda并确认Python可用性,但在尝试运行“ conda”命令时遇到错误,您遇到了错误。这通常表示路径配置的问题,从“ -bash:conda:找不到”消息中可以明显看出。以下是解决此问题的步骤: 1。正确的路径配置: for anaconda 4 :启动anacon...
    编程 发布于2025-04-18
  • C++中如何将独占指针作为函数或构造函数参数传递?
    C++中如何将独占指针作为函数或构造函数参数传递?
    在构造函数和函数中将唯一的指数管理为参数 unique pointers( unique_ptr [2启示。通过值: base(std :: simelor_ptr n) :next(std :: move(n)){} 此方法将唯一指针的所有权转移到函数/对象。指针的内容被移至功能中,在操作...
    编程 发布于2025-04-18
  • Java为何无法创建泛型数组?
    Java为何无法创建泛型数组?
    通用阵列创建错误 arrayList [2]; JAVA报告了“通用数组创建”错误。为什么不允许这样做?答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<myO...
    编程 发布于2025-04-18
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-04-18
  • 解决MySQL错误1153:数据包超出'max_allowed_packet'限制
    解决MySQL错误1153:数据包超出'max_allowed_packet'限制
    mysql错误1153:故障排除比“ max_allowed_pa​​cket” bytes 更大的数据包,用于面对阴谋mysql错误1153,同时导入数据capase doft a Database dust?让我们深入研究罪魁祸首并探索解决方案以纠正此问题。理解错误此错误表明在导入过程中接...
    编程 发布于2025-04-18

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3