Electron Desktop App Development · Ders

Yerel Depolama ve IndexedDB

Electron uygulamanızda istemci tarafı verilerinin kalıcılığı için `localStorage` ve `IndexedDB` gibi tarayıcı benzeri depolama mekanizmalarından yararlanın.

1. ders / 311 adım

Yerel Depolama ve IndexedDB, CoddyKit'te ücretsiz bir Electron Desktop App Development dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Electron Desktop App Development öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Electron Desktop App Development kursu toplamda 3 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Saving Data in Electron Apps

When building desktop applications with Electron, you often need to save user data or application settings. This is called data persistence.

Unlike web apps that rely on servers, Electron apps can store data directly on the user's computer. This lesson explores two common browser-like storage methods: localStorage and IndexedDB.

Introducing Web Storage API

Electron's renderer processes are essentially web browsers. This means you can use standard browser APIs for data storage, like the Web Storage API.

The Web Storage API provides two main types:

  • localStorage: Stores data with no expiration date.
  • sessionStorage: Stores data only for the duration of the browser session.

We'll focus on localStorage for persistent data.

Understanding localStorage

localStorage allows you to store data as simple key-value pairs. Think of it like a small, local dictionary.

  • Persistence: Data stored in localStorage remains even after the app is closed and reopened.
  • Scope: Data is unique to the origin (your app's domain, usually file:// for Electron).
  • Capacity: Limited to about 5-10 MB per origin.

It's great for small amounts of data like user preferences or simple settings.

Storing Data with localStorage

You can store data in localStorage using the setItem() method. Remember, values are always stored as strings.

Try running this example in your renderer process:

/* This code runs in the Electron renderer process. */

const username = "CoddyKitUser";
localStorage.setItem("userName", username);

const userSettings = {
  theme: "dark",
  notifications: true
};
// Objects need to be converted to JSON strings
localStorage.setItem("appSettings", JSON.stringify(userSettings));

console.log("Data saved to localStorage!");

Retrieving & Removing localStorage Data

To get data back, use getItem(). To delete, use removeItem(). If you stored an object, you'll need to parse it back from JSON.

Run this snippet after the previous one:

/* This code runs in the Electron renderer process. */

const storedUsername = localStorage.getItem("userName");
console.log("Stored Username:", storedUsername);

const storedSettingsString = localStorage.getItem("appSettings");
if (storedSettingsString) {
  const storedSettings = JSON.parse(storedSettingsString);
  console.log("Stored Theme:", storedSettings.theme);
}

// To remove an item:
localStorage.removeItem("userName");
console.log("Username removed.");

// To clear all localStorage for the origin:
// localStorage.clear();

Limitations of localStorage

While easy to use, localStorage has some limitations:

  • Size Limit: Typically 5-10 MB per origin. Not suitable for large datasets.
  • String-Only: All data is stored as strings. Objects and arrays must be manually serialized (e.g., with JSON.stringify()) and deserialized (JSON.parse()).
  • Synchronous: Operations block the main thread, which can cause UI freezes if you're storing/retrieving a lot of data.
  • No Indexing/Querying: You can't directly query data, only access by key.

Introducing IndexedDB

For larger, more structured, and complex data, IndexedDB is a powerful alternative. It's a low-level API for client-side storage of significant amounts of structured data.

  • No Size Limit: Generally limited only by available disk space.
  • Structured Data: Can store JavaScript objects directly, not just strings.
  • Asynchronous: Operations don't block the UI thread, making it suitable for performance-critical apps.

IndexedDB Core Concepts

IndexedDB works with a few key concepts:

  • Databases: You create databases, each with a name and version.
  • Object Stores: Like tables in a relational database, but they store JavaScript objects. Each object store has a key path.
  • Indexes: For fast querying of data within an object store.
  • Transactions: All read and write operations must occur within a transaction, ensuring data integrity.
  • Asynchronous: Operations return IDBRequest objects, which resolve with success or error events (or Promises).

Basic IndexedDB Setup

Setting up IndexedDB involves opening a database and defining object stores. This is usually done in the renderer process.

This example shows how to open a database and create an object store if it doesn't exist:

/* This code runs in the Electron renderer process. */

const request = indexedDB.open("CoddyKitDB", 1); // DB name, version

request.onerror = (event) => {
  console.error("Database error:", event.target.errorCode);
};

request.onsuccess = (event) => {
  const db = event.target.result;
  console.log("Database opened successfully!");
  // You can now interact with the database (add/get data)
  db.close(); // Close when done if not actively using
};

request.onupgradeneeded = (event) => {
  // This runs if the database didn't exist or version changed
  const db = event.target.result;
  const objectStore = db.createObjectStore("users", { keyPath: "id" });
  console.log("Object store 'users' created.");
  // You can also create indexes here
  objectStore.createIndex("name", "name", { unique: false });
};

Quick Check on Storage

You've learned about localStorage and IndexedDB. Which statement accurately describes a key difference?

Recap: Local & IndexedDB

Great job! You've explored client-side data persistence in Electron:

  • localStorage is simple, synchronous, key-value storage for small, non-critical data.
  • IndexedDB is a powerful, asynchronous, transactional database for large amounts of structured data.

Choosing between them depends on your data's size, structure, and performance needs. Both are crucial for building robust Electron applications that save user data locally.

Başlamak ücretsiz

Yapay zeka eğitmeniyle JavaScript öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
12
Dersler
47

Sıkça Sorulan Sorular

“Yerel Depolama ve IndexedDB” dersi ücretsiz mi?

Evet — “Yerel Depolama ve IndexedDB” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Electron Desktop App Development kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Electron Desktop App Development kursu toplamda 3 dersten oluşur.

“Yerel Depolama ve IndexedDB” dersinde ne öğreneceğim?

Electron uygulamanızda istemci tarafı verilerinin kalıcılığı için `localStorage` ve `IndexedDB` gibi tarayıcı benzeri depolama mekanizmalarından yararlanın. Electron Desktop App Development ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Electron Desktop App Development öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Electron Desktop App Development, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.

“Yerel Depolama ve IndexedDB” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Electron Desktop App Development dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Electron Desktop App Development dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yerel Depolama ve IndexedDB
  2. Dosya Sistemine Erişim
  3. SQLite ile Gömülü Veritabanları
← Electron Desktop App Development Sayfasına Dön