HTML5的local storage存储的数据到底存到哪去了

html-css017

HTML5的local storage存储的数据到底存到哪去了,第1张

基本使用方法如下:localStorage.name = "k1w1"这样的话,你的本地磁盘中就会有个数据库存下了这个数据。我无法接受数据写到了我的本地磁盘而我找不到它的确切位置,于是通过寻找发现:Chrome 的存储方式是以sqlite的数据库文件形式存储。存在C:\Users\Username\AppData\Local\Google\Chrome\User Data\Default\Local Storage 中,虽然后缀名是.localstorege 但是实际上就是sqlite的数据库文件,可以用sqlite打开,并看到其中的数据。这么蛋疼的找它存在哪里是因为我想删掉在学习使用local storage时产生的一些垃圾数据,有点电脑洁癖。就像当初我喜欢选择性删除cookies一样。Firefox存在哪里暂时没有找到,感觉像是被加了密的sqlite数据库文件(这样的话firefox的安全性就高一些了),不过我每次关掉firefox它都会自动删掉所有浏览数据,所以也暂时不想找它存在哪了。

在HTML 5中,localstorage是个不错的东西,在支持localstorage的浏览器中, 能持久化用户表单的输入,即使关掉浏览器,下次重新打开浏览器访问,也能读出其值, 下面给出的例子是使用jquery 在每次表单加载的时候,读localstorage的值,而在表单每次提交时则清楚其值的例子

首先是一个表单:

复制代码 代码如下:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>HTML5 Local Storage Example</title>

<!-- include Bootstrap CSS for layout -->

<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css" rel="stylesheet">

</head>

<body>

<div class="container">

<h1>HTML5 Local Storage Example</h1>

<form method="post" class="form-horizontal">

<fieldset>

<legend>Enquiry Form</legend>

<div class="control-group">

<label class="control-label" for="type">Type of enquiry</label>

<div class="controls">

<select name="type" id="type">

<option value="">Please select</option>

<option value="general">General</option>

<option value="sales">Sales</option>

<option value="support">Support</option>

</select>

</div>

</div>

<div class="control-group">

<label class="control-label" for="name">Name</label>

<div class="controls">

<input class="input-xlarge" type="text" name="name" id="name" value="" maxlength="50">

</div>

</div>

<div class="control-group">

<label class="control-label" for="email">Email Address</label>

<div class="controls">

<input class="input-xlarge" type="text" name="email" id="email" value="" maxlength="150">

</div>

</div>

<div class="control-group">

<label class="control-label" for="message">Message</label>

<div class="controls">

<textarea class="input-xlarge" name="message" id="message"></textarea>

</div>

</div>

<div class="control-group">

<div class="controls">

<label class="checkbox">

<input name="subscribe" id="subscribe" type="checkbox">

Subscribe to our newsletter

</label>

</div>

</div>

</fieldset>

<div class="form-actions">

<input type="submit" name="submit" id="submit" value="Send" class="btn btn-primary">

</div>

</form>

</div>

然后是js部分代码:

复制代码 代码如下:

<script src="//code.jquery.com/jquery-latest.js"></script>

<script>

$(document).ready(function () {

/*

* 判断是否支持localstorage

*/

if (localStorage) {

/*

* 读出localstorage中的值

*/

if (localStorage.type) {

$("#type").find("option[value=" + localStorage.type + "]").attr("selected", true)

}

if (localStorage.name) {

$("#name").val(localStorage.name)

}

if (localStorage.email) {

$("#email").val(localStorage.email)

}

if (localStorage.message) {

$("#message").val(localStorage.message)

}

if (localStorage.subscribe === "checked") {

$("#subscribe").attr("checked", "checked")

}

/*

* 当表单中的值改变时,localstorage的值也改变

*/

$("input[type=text],select,textarea").change(function(){

$this = $(this)

localStorage[$this.attr("name")] = $this.val()

})

$("input[type=checkbox]").change(function(){

$this = $(this)

localStorage[$this.attr("name")] = $this.attr("checked")

})

$("form")

/*

* 如果表单提交,则调用clear方法

*/

.submit(function(){

localStorage.clear()

})

.change(function(){

console.log(localStorage)

})

}

})