Dokumen ini adalah terjemahan dari "Offline Web Applications" dan mungkin terdapat kesalahan penerjemahan.Kata kata atau istilah yang dirasakan penterjemah belum ada istilah yang tepat dalam bahasa Indonesia dibiarkan dalam bahasa asalnya supaya tidak menjadikan pengertian yang ambigu.
Dokumen aslinya dapat di temukan di link berikut:
http://www.w3.org/TR/2008/NOTE-offline-webapps-20080530/
Penerjemah: Artest
Copyright © 2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
HTML 5 mengandung serangkaian fitur yang memberikan
tantangan tentang membangun aplikasi web yang tetap berjalan meskipun
offline. Dokumen ini memfokuskan fitur ini (SQL, aplikasi tembolok
offline yang sama baiknya antara kejadian online/offline
, status dan
penyimpanan lokal API) dari HTML 5
dan menyediakan panduan singkat
tentang bagaimana fitur ini akan digunakan untuk membuat aplikasi web
yang berjalan secara offline.
[HTML5]
Bagian ini menjelaskan tentang status dokumen ini saat dipublikasikan. Ada kemungkinan dokumen lain menggantikan dokumen ini. Daftar terbaru tentang publikasi W3C dan revisi terbaru tentang laporan teknik dapat ditemukan pada index laporan teknik W3C di http://www.w3.org/TR/.
Aplikasi web offline adalah kelompok kerja yang dihasilkan oleh kelompok kerja HTML, yang merupakan bagian dari aktivitas HTML. Komentar tentang dokumen ini dapat dikirimkan ke milis public-html-comments@w3.org yang mana milis ini merupakan arsip publik.
Publikasi sebagai catatan kelompok kerja tidak menyiratkan pengesahan oleh anggota W3C. Dokumen ini adalah dokumen konsep dan mungkin dilakukan pembaharuan, digantikan atau usang oleh dokumen-dokumen lainnya setiap saat. Tidak patut untuk mengutip dokumen ini karena dokumen ini sedang dalam tahap penyelesaian.
Dokumen ini dihasilkan oleh kelompok yang beroperasi di bawah Kebijakan Paten W3C tanggal 5 Februari 2004. Kelompok ini tidak mengharapkan dokumen menjadi Rekomendasi W3C. W3C mengelola daftar umum pengakuan paten sehubungan dengan penyerahan dokumen oleh kelompok; daftar umum tersebut juga termasuk petunjuk untuk mengungkapkan hak paten. Seorang individu yang memiliki pengetahuan yang sebenarnya dari sebuah paten dimana individu tersebut percaya mengandung esensi klaim harus mengungkapkan informasi sesuai dengan pasal 6 dari Kebijakan Paten W3C.
Bisanya pengguna aplikasi Web online hanya dapat menggunakan aplikasi ketika mereka memiliki koneksi ke Internet. Ketika mereka offline, mereka tidak dapat lagi memeriksa email mereka, melihat janji kalender mereka, atau mempersiapkan presentasi dengan alat-alat online mereka. Sementara itu, aplikasi asli menyediakan fitur-fitur: Tembolok Folder lokal e-mail pengguna, kalender yang menyimpan even pengguna secara lokal, paket presentasi menyimpan file data pengguna secara lokal.
Selain itu, ketika offline, pengguna tergantung dengan tembolok HTTP untuk membuka aplikasi, karena mereka tidak dapat menghubungi server untuk mendapatkan salinan terbaru.
Spesifikasi HTML 5 memberikan 2 solusi terhadap masalah ini : SQL berbasiskan database API untuk penyimpanan data lokal dan tembolok aplikasi offline HTTP untuk memastikan aplikasi dapat digunakan meskipun pengguna tidak terhubung dengan jaringan mereka.
Bagian klien database SQL di dalam HTML 5 memungkinkan penyimpanan data secara tersturktur. Ini dapat digunakan untuk menyimpan email secara lokal yang dapat digunakan oleh aplikasi email atau fitur keranjang yang terdapat dalam situs toko online. API bersinkronisasi agar dapat berinteraksi dengan database SQL yang memungkinkan antar muka pengguna tidak terkunci. Karena interaksi database dapat terjadi di lebih dari satu browser windows yang mendukung Transaksi API.
Untuk membuat objek database, anda menggunakan metode openDatabase()
di objek Window. Dibutuhkan empat argumen,
nama database, versi database, nama yang terlihat, dan estimasi ukuran
data yang akan disimpan di database. Sebagai contoh :
var db = openDatabase("notes", "", "The Example Notes App!", 1048576);
Sekarang di dalam database kita dapat menggunakan metode transaction().
Metode tranksaksi membutuhkan satu sampai 3 argumen: panggilan kembali
transaksi, panggilan kembali transaksi yang tidak berhasil, dan
panggilan kembali transaksi yang berhasil. Pemanggilan kembali
transaksi dilewatkan melalui objek SQL transaksi di mana Anda dapat
menggunakan metode executeSQL(). Metode ini
dibutuhkan satu sampai empat argumen: pernyataan argumen SQL,
pernyataan pemanggilan kembali SQL, dan pernyataan tidak berhasil
pemanggilan kembali SQL. Pernyataan Pemanggilan kembali SQL dilewatkan
ke objek transaksi serta obyek hasil pernyataan SQL yang memberikan
akses ke baris, ID pemasukkan terakhir, dan sebagainya.
Untuk melengkapi infrastruktur untuk catatan aplikasi kami akan menambahkan kode berikut:
function renderNote(row) {
// renders the note somewhere
}
function reportError(source, message) {
// report error
}
function renderNotes() {
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS Notes(title TEXT, body TEXT)',
[]);
tx.executeSql(‘SELECT * FROM Notes’, [], function(tx, rs) {
for(var i = 0; i < rs.rows.length; i++) {
renderNote(rs.rows[i]);
}
});
});
}
function insertNote(title, text) {
db.transaction(function(tx) {
tx.executeSql('INSERT INTO Notes VALUES(?, ?)', [ title, text ],
function(tx, rs) {
// …
},
function(tx, error) {
reportError('sql', error.message);
});
});
}
Mekanisme untuk memastikan aplikasi web tersedia meskipun
pengguna tidak terhubung dengan jaringan mereka adalah attribut manifest
di dalam elemen html.
Atrribute membutuhkan URI untuk membuktikan, yang menentukan
file mana yang akan di-tembolok. Manifes mempunyai text/cache-manifest
tipe MIME. Biasanya file akan terlihat seperti ini:
CACHE MANIFEST
index.html
help.html
style/default.css
images/logo.png
images/backgound.png
NETWORK:
server.cgi
File ini menetapkan beberapa file untuk ditembolok, dan
kemudian menentukan bahwa server.cgi
tidak harus ditembolok, sehingga setiap usaha untuk mengakses file akan
melewati tembolok.
Manifes dapat di kaitkan juga dengan cara menyatakan di dalam aplikasi (HTML), seperti ini:
<!DOCTYPE HTML>
<html manifest="cache-manifest">
...
File server.cgi akan
menjadi daftar yang diperbolehkan (terletak di bagian NETWORK:)
sehingga file itu akan dapat dihubungi dan memperoleh update dari
server, seperti di dalam :
<event-source src="server.cgi">
(elemen event-source adalah fitur
baru di HTML 5 yang memperbolehkan server secara teratur
mengirimkan update ke halaman web.)
Mekanisme tembolok di dalam aplikasi juga mendukung cara untuk mengambil tembolok (dari server) sekelompok file-file dengan prefiks umum, dengan kemampuan untuk memiliki halaman fallback untuk rendering halaman-halaman saat offline. Hal ini juga menyediakan cara bagi naskah untuk menambah dan menghapus entri dari tembolok secara dinamis, dan cara agar aplikasi secara otomatis memperbarui tembolok ke file baru, opsional menyajikan kostumasi UI selama update.
Selain terhadap APIs HTML 5 juga medefinisikan
atribute onLine di objek Navigator
sehingga anda dapat menentukan apakah anda sedang online:
var online = navigator.onLine;
Perubahan terhadap atribut ini ditandai melalui kejadian online
dab offline dimana keduanya dikirimkan ke
objek Window.
Untuk sinkronisasi akses penyimpanan sederhana HTML 5
mengenalkan atribute localStorage di dalam
objek Window:
localStorage["status"] = "Idling.";
Para editor ingin mengucapkan terima kasih kepada Chris Wilson, Dion Almaer, James Graham, Julian Reschke, Henri Sivonen, Patrick D. F. Ion, and Philip Taylor untuk kontribusi mereka terhadap dokumen ini. Juga berterima kasih kepada Dan Connolly karena telah menyarankan untuk menulis terlebih dahulu selama pertemuan pertama HTML WG (di Boston).