Object: WebStorage dapat menyimpan data secara lokal di komputer user di dengan Session. Misalnya: Bisa digunakan untuk menyimpan posisi terakhir, dan mengembalikan kemajuan yang telah dicapai pemain, jika mereka kembali keesokan harinya (Catatan: jika Anda ingin fitur Save and Load Full-state, lihat How to make savegames (https://www.scirra.com/tutorials/526/how-to-make-savegames)).
Perhatikan bahwa meskipun namanya adalah Object: WebStorage, namun tidak menggunakan penyimpanan Online. Karena data disimpan secara lokal ke komputer user, maka akan berfungsi saat Offline, dan juga untuk menyimpan data di Offline Exporter seperti Node-webkit atau Mobile Wrapper seperti: CocoonJS.
WebStorage tidak menyimpan Browser Cache. Jika user mengosongkan Browser Cache, data WebStorage tetap utuh. Namun jika user menghapus semua Cookie atau data situs Offline mereka, data WebStorage akan dihapus. Hal ini disengaja oleh pembuat browser sehingga user memiliki cara untuk membebaskan ruang disk dan mencegah situs web menyimpan informasi tentang mereka. Ini biasanya memiliki efek samping lainnya seperti: Membuat user keluar dari setiap situs web yang sebelumnya mereka masuki. Pada Platform yang bukan browser web dengan Address Bar (seperti aplikasi Windows 8, CocoonJS, atau Node-webkit) penyimpanan bersifat permanen dan tidak ada pilihan bagi user untuk menghapusnya.
Storage per domain
Object: WebStorage menghubungkan semua data yang tersimpan dengan domain saat ini. Misalnya: semua game yang berjalan di scirra.com berbagi data yang sama, namun game yang berjalan di facebook.com menggunakan kumpulan data yang berbeda dan tidak dapat mengakses data yang tersimpan dari scirra.com.
Sebagian besar browser menerapkan ukuran maksimal data yang dapat disimpan dengan WebStorage – 5mb adalah batas umum. Jika melebihi batas, WebStorage Condition: On quota exceeded terpicu.
Local Vs Session Storage
Object: WebStorage memungkinkan data disimpan di dua tempat: Penyimpanan lokal dan penyimpanan Session.
Penyimpanan lokal (Local Storage) bersifat permanen (sebelum user membersihkan Cache). Jika user kembali keesokan harinya, penyimpanan lokal masih memiliki data yang tersimpan.
Penyimpanan sesi (Session Storage) hanya berlangsung dengan sesi Browser. Jika user kembali keesokan harinya, penyimpanan sesi kosong kembali.
Menggunakan WebStorage
Object: WebStorage menggunakan model penyimpanan yang sangat sederhana: nilai disimpan di bawah kunci bernama, mirip dengan bagaimana Object: Dictionary bekerja. Misalnya, nilai 100 bisa disimpan untuk skor kunci dengan Action: Set local value “score” menjadi 100. Begitu pula nilai “John” yang bisa disimpan untuk nama kunci. Kemudian Expression: WebStorage.LocalValue(“score”) mengembalikan “100” (sebagai String) dan WebStorage.LocalValue (“name”) mengembalikan “John”, dan nilai-nilai ini bertahan di antara sesi. (Jika penyimpanan sesi digunakan sebagai gantinya, nilainya hanya akan bertahan selama sesi peramban.)
Object: WebStorage menggunakan model penyimpanan yang sangat sederhana: nilai disimpan di sebuah Key, mirip dengan bagaimana Object: Dictionary bekerja. Misalnya: nilai 100 bisa disimpan untuk Key: skor dengan Action: Set local value “skor” to 100. Begitu pula nilai “John” yang bisa disimpan untuk Key: nama. Kemudian Expression: WebStorage.LocalValue(“skor”) untuk mengambil nilai “100” (sebagai String) dan WebStorage.LocalValue (“nama”) untuk mengambil “John”, dan nilai-nilai ini bertahan di antara sesi (Jika penyimpanan sesi digunakan, nilainya hanya akan bertahan selama sesi pada browser).
Catatan: WebStorage hanya menyimpan String/teks. Jika Anda menetapkan Key ke Angka misalnya: 100, saat Anda mengambilnya kembali, itu akan menjadi String. Untuk mengubahnya menjadi angka kembali, gunakan int System Expression misalnya: int(WebStorage.LocalValue (“skor”)).
Webstorage Conditions
- Compare key value (as number)
Bandingkan nilai dari Key yang diberikan ke sebuah nomor. Karena Object: WebStorage hanya menyimpan nilai sebagai String, Condition ini pertama-tama akan mengubah nilai ke angka, lalu membandingkannya. Jika nilai dari Key bukan angka, Condition akan selalu FALSE. - Compare key value (as text)
Bandingkan nilai dari Key yang diberikan ke sebuah String/teks. Perhatikan: Object: WebStorage hanya menyimpan nilai sebagai String, jadi jika ada nomor yang tersimpan sebelumnya, itu akan dikonversi ke String. - Local/session key exists
Periksa apakah sebuah nilai telah disimpan untuk sebuah Key di penyimpanan Local atau Session. - On quota exceeded
Sebagian besar browser membatasi jumlah data yang dapat disimpan di WebStorage sekitar 5mb. Jika batas ini terlampaui, atau user menolak untuk meningkatkan batas penyimpanan saat browser memintanya, maka Condition ini menjadi TRUE. Anda tidak dapat menambahkan Key baru, atau mengatur Key yang ada ke nilai yang lama, sampai Anda menghapus beberapa nilai lainnya atau menghapus keseluruhan penyimpanan.
Webstorage Actions
- Clear local/session storage
Set ulang penyimpanan Local atau Session menjadi kosong untuk domain ini, tanpa data yang tersimpan. - Remove local/session value
Hapus Key (dan nilai asosiasinya) dari penyimpanan Local atau Session. Key dan Nilai tersebut tidak akan ada lagi setelah Action ini. - Set local/session value
Simpan nilai (String atau angka) untuk sebuah Key di penyimpanan Local atau Session. Jika Key tersebut tidak ada, maka dibuat, jika ada ,nilainya diperbarui. - Load JSON
Muatkan Key dan nilai penyimpanan Local dari data JSON. Cocok dengan Object: Dictionary format JSON, sehingga data dapat dipertukarkan antara Object: Dictionary dan WebStorage, namun catatan: WebStorage hanya menyimpan String (sehingga semua Angka akan dikonversi menjadi String saat dimuat). Jika Mode adalah Set, penyimpanan Local dibersihkan terlebih dahulu, lalu data dimuat. Jika Mode adalah Merge, Key pada data JSON ditambahkan atau ditimpa pada Key yang ada dalam penyimpanan.
Webstorage Expressions
- LocalAt
- SessionAt
Mengambil nilai pada indeks berbasis nol jika semua Key dalam penyimpanan tercantum dalam urutan abjad. Berguna untuk mencantumkan semua data yang tersimpan. - LocalCount
- SessionCount
Mengambil jumlah Key yang ada di penyimpanan untuk domain ini. - LocalKeyAt
- SessionKeyAt
Mengambil nama Key pada indeks berbasis nol jika semua Key dalam penyimpanan tercantum dalam urutan abjad. Berguna untuk mencantumkan semua data yang tersimpan. - LocalValue
- SessionValue
Mengambil nilai yang tersimpan untuk Key dalam penyimpanan. Jika Key tersebut tidak ada, akan menghasilkan nilai 0. - AsJSON
Mengambil seluruh isi penyimpanan Local dalam format JSON. Hasilnya juga bisa dimuat ke Object: Dictionary, namun catatan: WebStorage hanya menyimpan String sehingga semua nilai hasil dalam Object: Dictionary juga akan menjadi String.
Komentar
Posting Komentar