
推荐
文章开始之前,推荐一下别人写的佳作,大家感兴趣的也可以去读一下。
推荐文章:使用Java开发游戏客户端详解-腾讯云开发者社区-腾讯云
这篇文章介绍了以Java语言为基础,详解如何开发一个游戏客户端。我们会讨论客户端的基本架构设计,数据处理流程,以及与服务器的通信机制。通过源码解析和应用案例分享,进一步分析客户端开发中的常见挑战和解决方案。此外,文章将通过优缺点分析、核心类方法介绍以及测试用例。整体内容全面,步骤清晰,非常适合读者学习和参考。
在H5 App开发中,本地存储是一个重要的功能,它允许应用在用户的设备上存储数据,以便在用户重新访问应用时能够恢复这些数据。H5的本地存储主要有两种方式:Web Storage(包括localStorage和sessionStorage)和IndexedDB。本文将详细讲解这两种存储方式,并提供示例代码。
Web Storage提供了一种在客户端存储数据的方式,它主要包括localStorage和sessionStorage两种。
setItem(key, value)方法。getItem(key)方法。removeItem(key)方法。clear()方法。示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>localStorage示例</title>
</head>
<body>
<script>
// 存储数据
localStorage.setItem('username', 'John');
localStorage.setItem('age', '25');
// 读取数据
var username = localStorage.getItem('username');
var age = localStorage.getItem('age');
console.log('Username:', username);
console.log('Age:', age);
// 删除数据
localStorage.removeItem('age');
// 清空所有存储
// localStorage.clear();
</script>
</body>
</html>2.sessionStorage
sessionStorage是一种会话级别的存储方式,存储的数据在页面会话结束时(通常是页面被关闭时)会被删除。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>sessionStorage示例</title>
</head>
<body>
<script>
// 存储数据
sessionStorage.setItem('sessionUsername', 'Jane');
// 读取数据
var sessionUsername = sessionStorage.getItem('sessionUsername');
console.log('Session Username:', sessionUsername);
// 关闭页面或浏览器后,sessionStorage中的数据将被删除
</script>
</body>
</html>IndexedDB是一种更复杂的、面向对象的数据库,它允许在客户端存储大量的结构化数据,并支持事务处理。
openRequest.onupgradeneeded事件来创建和修改对象存储。transaction.objectStore('storeName').add(data)方法。transaction.objectStore('storeName').get(key)方法。transaction.objectStore('storeName').delete(key)方法。示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>IndexedDB示例</title>
</head>
<body>
<script>
var request = indexedDB.open('myDatabase', 1);
request.onupgradeneeded = function(event) {
var db = event.target.result;
if (!db.objectStoreNames.contains('customers')) {
db.createObjectStore('customers', { keyPath: 'id' });
}
};
request.onsuccess = function(event) {
var db = event.target.result;
var transaction = db.transaction(['customers'], 'readwrite');
var store = transaction.objectStore('customers');
// 添加数据
var customer = { id: 1, name: 'Tom', age: 30 };
store.add(customer);
// 获取数据
store.get(1).onsuccess = function(event) {
var result = event.target.result;
console.log('Customer:', result);
};
// 删除数据(可选)
// store.delete(1);
transaction.oncomplete = function(event) {
db.close();
};
};
</script>
</body>
</html>QuotaExceededError异常。JSON.stringify),在读取时再将字符串转换回对象(使用JSON.parse)。通过以上讲解和示例代码,相信你已经对H5 App的本地存储有了更深入的了解。在实际开发中,可以根据具体需求选择合适的存储方式,以提供更好的用户体验。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。