11/08/2018, 19:49

Web storage và Web SQL trong HTML5

HTML 5 đã giới thiệu về web storage, giúp client code (Javascript) lưu thông tin với dung lượng lớn hơn hơn an toàn hơn so với cookie, đồng thời không làm ảnh hưởng đến performance của trang web. Web storage gồm có LocalStorage và SessionStorage được lưu theo từng domain, được hỗ trợ ...

HTML 5 đã giới thiệu về web storage, giúp client code (Javascript) lưu thông tin với dung lượng lớn hơn hơn an toàn hơn so với cookie, đồng thời không làm ảnh hưởng đến performance của trang web.

Web storage gồm có LocalStorageSessionStorage được lưu theo từng domain, được hỗ trợ bởi hầu hết các browser hiện đại

localStorage là một biến có thể set và get như bình thường

localStorage.setItem('name', 'foo');
localStorage.getItem('name'); // foo

Chúng ta thậm chí có thể lưu và lấy thông tin dưới dạng Object và Json

localStorage.setItem('user', JSON.stringify({
    name: 'foo',
    id: 'bar'
}));
var user = JSON.parse(localStorage.getItem('user'));
// Object {name: "foo", id: "bar"}

Xoá thông tin cũng rất dễ với removeItem và clear

localStorage.removeItem('user')
var user = JSON.parse(localStorage.getItem('user')); // null
localStorage.clear() // Clear all

sessionStorage cũng giống localStorage, chỉ khác ở chỗ là chỉ lưu thông tin trên một session, tức là thông tin sẽ mất khi user đóng browse lại.

HTML5 cũng giới thiệu một phương pháp tạo database trên client code.
Ngữ pháp dùng trên Web SQL rất giống với SQLite và MySQL.

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE user (name unique, address)');
  tx.executeSql('INSERT INTO user (name, address) VALUES ("foo", "HN")')
});
db.transaction(function (tx) {
  tx.executeSql('SELECT * FROM user', [], function (tx, results) {
    var len = results.rows.length, i;
    for (i = 0; i < len; i++) {
      console.log(results.rows.item(i));
    }
  });
});
// Object {name: "foo", address: "HN"}
0