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 

W3C

Aplikasi Web Offline

Catatan Kelompok Kerja W3C 30 Mei 2008

Versi Ini:
http://www.w3.org/TR/2008/NOTE-offline-webapps-20080530/
Versi Terbaru:
http://www.w3.org/TR/offline-webapps/
Para Editor:
Anne van Kesteren (Opera Software ASA) <annevk@opera.com>
Ian Hickson, Google, Inc.

Abstraksi

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]

Status Dokumen ini

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.

Daftar Isi

1. Pengenalan

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.

2. SQL

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);
});
});
}

3. Tembolok Aplikasi Offline Terhadap APIs (Antar Muka Pemrograman Aplikasi)

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.";

Referensi

[HTML5] (dokumen dalam proses)
HTML 5, I. Hickson, editor. WHATWG, 2008.
Web Forms 2.0, I. Hickson, editor. WHATWG, October 2006.
HTML 5, I. Hickson, D. Hyatt, editors. W3C, 2008.
Web Forms 2.0, I. Hickson, editor. W3C, October 2006.

Ucapan Terima Kasih

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).