To preserve user choices between sessions in Google Chrome, you can use various methods, such as cookies, local storage, or IndexedDB. Each method has its own use cases and limitations, so it's important to choose the one that best fits your specific requirements.

Here are three common ways to preserve user choices between sessions in Google Chrome:

  1. Cookies: Cookies are small pieces of data that websites store on a user's browser. They can be used to remember user preferences and choices between sessions. To work with cookies in JavaScript, you can use the document.cookie property to set, read, and delete cookie values.

    Example to set a cookie:

    document.cookie = "userChoice=darkMode; expires=Thu, 01 Jan 2023 00:00:00 UTC; path=/";

    Example to read a cookie:

    const userChoice = document.cookie.split('; ').find(row => row.startsWith('userChoice=')).split('=')[1];
  2. Local Storage: Local storage is a web storage mechanism that allows you to store key-value pairs in a user's browser. It provides a simple API to set and retrieve data. Unlike cookies, local storage data is not automatically sent to the server with every HTTP request.

    Example to set data in local storage:

    localStorage.setItem('userChoice', 'darkMode');

    Example to retrieve data from local storage:

    const userChoice = localStorage.getItem('userChoice');
  3. IndexedDB: IndexedDB is a more powerful client-side database system that allows you to store large amounts of structured data. It provides asynchronous and transactional access to data and is well-suited for more complex applications.

    Example to set data in IndexedDB:

    const request ='myDB', 1); request.onupgradeneeded = event => { const db =; const objectStore = db.createObjectStore('userData', { keyPath: 'key' }); objectStore.add({ key: 'userChoice', value: 'darkMode' }); };

    Example to retrieve data from IndexedDB:

    const request ='myDB', 1); request.onsuccess = event => { const db =; const transaction = db.transaction('userData'); const objectStore = transaction.objectStore('userData'); const request = objectStore.get('userChoice'); request.onsuccess = event => { const userChoice =; }; };

Remember that when using client-side storage methods like local storage and cookies, the data is accessible to JavaScript running on the client side. If the data contains sensitive information or affects critical functionality, you should also handle this data securely on the server-side and implement proper validation and security measures.

Have questions or queries?
Get in Touch