HTML5 Intro
HTML 5 dibuat lebih sederhana, ciri - cirinya
<!DOCTYPE html> dan meta charset utf-8
Terdapat beberapa tag yang muncul di HTML Versi 5 ini, antara lain :
- Semantik
< header >,< footer >,< section >,dan< article > - Kontrol baru seperti nomor, tanggal, waktu, kalender, dan jangkauan.
- Grafid
< svg >,< canvas > - Multimedia
< video >,< audio >
HTML5 Dukungan
HTML5 didukung di semua browser modern.
Selain itu, semua browser, lama dan baru, otomatis menangani elemen yang belum diakui sebagai elemen inline.
Selain itu, semua browser, lama dan baru, otomatis menangani elemen yang belum diakui sebagai elemen inline.
HTML5 Elemen
Beberapa elemen baru yang ditambahkan pada HTML5
| Tag | Description |
|---|---|
| <article> | Defines an article in the document |
| <aside> | Defines content aside from the page content |
| <bdi> | Defines a part of text that might be formatted in a different direction from other text |
| <details> | Defines additional details that the user can view or hide |
| <dialog> | Defines a dialog box or window |
| <figcaption> | Defines a caption for a <figure> element |
| <figure> | Defines self-contained content, like illustrations, diagrams, photos, code listings, etc. |
| <footer> | Defines a footer for the document or a section |
| <header> | Defines a header for the document or a section |
| <main> | Defines the main content of a document |
| <mark> | Defines marked or highlighted text |
| <menuitem> | Defines a command/menu item that the user can invoke from a popup menu |
| <meter> | Defines a scalar measurement within a known range (a gauge) |
| <nav> | Defines navigation links in the document |
| <progress> | Defines the progress of a task |
| <rp> | Defines what to show in browsers that do not support ruby annotations |
| <rt> | Defines an explanation/pronunciation of characters (for East Asian typography) |
| <ruby> | Defines a ruby annotation (for East Asian typography) |
| <section> | Defines a section in the document |
| <summary> | Defines a visible heading for a <details> element |
| <time> | Defines a date/time |
| <wbr> | Defines a possible line-break |
Elemen form yang baru
| Tag | Description |
|---|---|
| <datalist> | Defines pre-defined options for input controls |
| <keygen> | Defines a key-pair generator field (for forms) |
| <output> | Defines the result of a calculation |
Form input yang baru
| New Input Types | New Input Attributes |
|---|---|
|
|
HTML5 Semantik
Elemen HTML yang bersifat semantik adalah
- <article>
- <aside>
- <details>
- <figcaption>
- <figure>
- <footer>
- <header>
- <main>
- <mark>
- <nav>
- <section>
- <summary>
- <time>
HTML5 Migrasi
Migrasi dari HTML4 ke HTML5
Bab ini sepenuhnya tentang bagaimana untuk bermigrasi dari halaman HTML4 khas ke halaman HTML5 khas.
Bab ini menunjukkan bagaimana mengkonversi halaman HTML4 yang ada ke dalam halaman HTML5, tanpa merusak apapun dari konten asli atau struktur.
Bab ini sepenuhnya tentang bagaimana untuk bermigrasi dari halaman HTML4 khas ke halaman HTML5 khas.
Bab ini menunjukkan bagaimana mengkonversi halaman HTML4 yang ada ke dalam halaman HTML5, tanpa merusak apapun dari konten asli atau struktur.
| Tipe HTML4 | Tipe HTML5 |
|---|---|
| <div id="header"> | <header> |
| <div id="menu"> | <nav> |
| <div id="content"> | <section> |
| <div id="post"> | <article> |
| <div id="footer"> | <footer> |
HTML5 Style Guide
Pengembang web sering tidak pasti tentang gaya coding dan sintaks untuk digunakan dalam HTML.
Antara tahun 2000 dan 2010, banyak pengembang web dikonversi dari HTML ke XHTML.
Dengan XHTML, pengembang dipaksa untuk menulis sah dan "well-formed" kode.
HTML5 adalah sedikit lebih ceroboh ketika melakukan kode validasi.
Antara tahun 2000 dan 2010, banyak pengembang web dikonversi dari HTML ke XHTML.
Dengan XHTML, pengembang dipaksa untuk menulis sah dan "well-formed" kode.
HTML5 adalah sedikit lebih ceroboh ketika melakukan kode validasi.
Dalam penulisan tag HTML, usahakan sesuai aturan, semisal tag yang aslinya besar maka ditulis besar begitu sebaliknya tag yang aslinya kecil ditulis kecil, serta jangan lupa untuk menutup jika tag merupakan jenis berpasangan .
HTML5 Form
tag HTML untuk form adalah
< form >< /form>
Didalam form akan ada beberapa input, yaitu
<form action="action_page.php" method="GET/POST"> Nama depan:<br> <input type="text" name="firstname"> <br> Nama akhir:<br> <input type="text" name="lastname"> <br> Jenis Kelamin <br> <input type="radio" name="sex" value="male">Male <input type="radio" name="sex" value="female">Female <br> Hobi <br> <input type="checkbox" name="vehicle" value="Bike">I have a bike <br> <input type="checkbox" name="vehicle" value="Car">I have a car <br> Pilih <br> <input list="browsers"> <datalist id="browsers"> <option value="Internet Explorer"> <option value="Firefox"> <option value="Chrome"> <option value="Opera"> <option value="Safari"> </datalist> <br> Password:<br> <input type="password" name="psw"> <br> Pekerjaan <br> <select name="pekerjaan"> <option value="SWASTA">SWASTA</option> <option value="PNS">PNS</option> <option value="Wiraswasta">Wiraswasta</option> </select> <br> <br> <input type="file" name="foto"> <br> <br> <input type="submit" value="Submit"><br> </form>
| Attribute | Description |
|---|---|
| accept-charset | Specifies the charset used in the submitted form (default: the page charset). |
| action | Specifies an address (url) where to submit the form (default: the submitting page). |
| autocomplete | Specifies if the browser should autocomplete the form (default: on). |
| enctype | Specifies the encoding of the submitted data (default: is url-encoded). |
| method | Specifies the HTTP method used when submitting the form (default: GET). |
| name | Specifies a name used to identify the form (for DOM usage: document.forms.name). |
| novalidate | Specifies that the browser should not validate the form. |
| target | Specifies the target of the address in the action attribute (default: _self). |
HTML Graphics
HTML Canvas
Apa Canvas?
Kanvas adalah media untuk lukisan cat minyak. Salah satu minyak paling awal di atas kanvas adalah Madonna Perancis dari 1410. kanvas biasanya membentang di bingkai kayu.
Pada kanvas HTML, Anda dapat menarik semua jenis grafis, dari garis sederhana, objek grafis yang kompleks.
HTML < canvas > Elemen
HTML
< canvas > elemen (diperkenalkan di HTML5) merupakan wadah untuk grafis kanvas.
Kanvas HTML adalah area persegi pada halaman HTML.
Kanvas memiliki beberapa metode untuk menggambar jalan, kotak, lingkaran, teks, dan gambar grafis.
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> Your browser does not support the HTML5 canvas tag. </canvas>
HTML SVG
Apa itu SVG?
SVG adalah singkatan dari Scalable Vector Graphics
SVG digunakan untuk mendefinisikan grafis untuk Web
SVG adalah rekomendasi W3C
HTML < svg > Elemen
HTML < svg > elemen (diperkenalkan di HTML5) merupakan wadah untuk grafis SVG.< /svg >
SVG memiliki beberapa metode untuk menggambar jalan, kotak, lingkaran, teks, dan gambar grafis.
<svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" /> Maaf, browser anda tidak support inline SVG. </svg>
<svg width="400" height="100"> <rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" /> </svg>
<svg width="400" height="180"> <rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5" /> </svg>
<svg width="300" height="200"> <polygon points="100,10 40,198 190,78 10,78 160,198" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" /> </svg>
<svg height="130" width="500"> <defs> <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" /> <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" /> </linearGradient> </defs> <ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" /> <text fill="#ffffff" font-size="45" font-family="Verdana" x="50" y="86">SVG</text> Maaf, browser tidak support </svg>
Perbedaan Antara SVG dan Canvas
SVG adalah bahasa untuk menggambarkan grafis 2D dalam XML.
Kanvas menarik grafis 2D, on the fly (dengan JavaScript).
SVG adalah berbasis XML, yang berarti bahwa setiap elemen tersedia dalam SVG DOM. Anda dapat melampirkan JavaScript event handler untuk elemen.
Di SVG, setiap bentuk digambar dikenang sebagai objek. Jika atribut dari sebuah objek SVG berubah, browser dapat secara otomatis kembali membuat bentuk.
Kanvas diberikan pixel dengan pixel. Dalam kanvas, setelah grafik ditarik, telah dilupakan oleh browser. Jika posisinya harus diubah, seluruh adegan perlu digambar ulang, termasuk benda yang mungkin telah ditutupi oleh grafik.
Perbandingan Canvas dan SVG
Tabel di bawah ini menunjukkan beberapa perbedaan penting antara kanvas dan SVG:
| Canvas | SVG |
|---|---|
|
|
HTML Media
Multimedia di web, adalah suara, musik, video, film, dan animasi.
Apa Multimedia?
Multimedia datang dalam berbagai format. Hal ini dapat hampir apapun yang Anda bisa mendengar atau melihat.
Contoh: Gambar, musik, suara, video, catatan, film, animasi, dan banyak lagi.
Halaman web sering berisi elemen-elemen multimedia jenis dan format yang berbeda.
Dalam bab ini Anda akan belajar tentang format multimedia yang berbeda.
Dukungan Browser
Web browser pertama memiliki dukungan untuk teks saja, terbatas pada font tunggal dalam satu warna.
Kemudian datang browser dengan dukungan untuk warna dan font, dan bahkan dukungan untuk gambar!
Dukungan untuk suara, animasi, dan video ditangani secara berbeda oleh berbagai browser. Berbagai jenis dan format yang didukung, dan beberapa format membutuhkan program pembantu tambahan (plug-in) untuk bekerja.
Mudah-mudahan ini akan menjadi sejarah. HTML5 multimedia menjanjikan masa depan yang lebih mudah untuk multimedia.
Format Multimedia
Elemen multimedia (seperti suara atau video) disimpan dalam file media.
Cara yang paling umum untuk menemukan jenis file, adalah dengan melihat ekstensi file. Ketika browser melihat ekstensi .htm file atau html, itu akan memperlakukan file sebagai file HTML. Perpanjangan xml menunjukkan file XML, dan ekstensi css menunjukkan file style sheet. Gambar diakui oleh ekstensi seperti .gif, .png dan .jpg.
File multimedia juga memiliki format sendiri dan ekstensi yang berbeda seperti: swf, .wav, .mp3, .mp4, mpg, wmv, avi dan.
Video Format umum
Videoformats MP4 adalah format baru dan mendatang untuk video internet.
MP4 direkomendasikan oleh YouTube.
MP4 didukung oleh Flash gamers
MP4 didukung oleh HTML5.
| Format | File | Description |
|---|---|---|
| MPEG | .mpg .mpeg | MPEG. Developed by the Moving Pictures Expert Group. The first popular video format on the web. Used to be supported by all browsers, but it is not supported in HTML5 (See MP4). |
| AVI | .avi | AVI (Audio Video Interleave). Developed by Microsoft. Commonly used in video cameras and TV hardware. Plays well on Windows computers, but not in web browsers. |
| WMV | .wmv | WMV (Windows Media Video). Developed by Microsoft. Commonly used in video cameras and TV hardware. Plays well on Windows computers, but not in web browsers. |
| QuickTime | .mov | QuickTime. Developed by Apple. Commonly used in video cameras and TV hardware. Plays well on Apple computers, but not in web browsers. (See MP4) |
| RealVideo | .rm .ram | RealVideo. Developed by Real Media to allow video streaming with low bandwidths. It is still used for online video and Internet TV, but does not play in web browsers. |
| Flash | .swf .flv | Flash. Developed by Macromedia. Often requires an extra component (plug-in) to play in web browsers. |
| Ogg | .ogg | Theora Ogg. Developed by the Xiph.Org Foundation. Supported by HTML5. |
| WebM | .webm | WebM. Developed by the web giants, Mozilla, Opera, Adobe, and Google. Supported by HTML5. |
| MPEG-4 or MP4 | .mp4 | MP4. Developed by the Moving Pictures Expert Group. Based on QuickTime. Commonly used in newer video cameras and TV hardware. Supported by all HTML5 browsers. Recommended by YouTube. |
Format suara
MP3 adalah format terbaru untuk kompresi rekaman musik. Istilah MP3 telah menjadi identik dengan musik digital.
Jika situs Web Anda tentang rekaman musik, MP3 adalah pilihan.
| Format | File | Description |
|---|---|---|
| MIDI | .mid .midi | MIDI (Musical Instrument Digital Interface). Main format for all electronic music devices like synthesizers and PC sound cards. MIDI files do not contain sound, but digital notes that can be played by electronics. Plays well on all computers and music hardware, but not in web browsers. |
| RealAudio | .rm .ram | RealAudio. Developed by Real Media to allow streaming of audio with low bandwidths. Does not play in web browsers. |
| WMA | .wma | WMA (Windows Media Audio). Developed by Microsoft. Commonly used in music players. Plays well on Windows computers, but not in web browsers. |
| AAC | .aac | AAC (Advanced Audio Coding). Developed by Apple as the default format for iTunes. Plays well on Apple computers, but not in web browsers. |
| WAV | .wav | WAV. Developed by IBM and Microsoft. Plays well on Windows, Macintosh, and Linux operating systems. Supported by HTML5. |
| Ogg | .ogg | Ogg. Developed by the Xiph.Org Foundation. Supported by HTML5. |
| MP3 | .mp3 | MP3 files are actually the sound part of MPEG files. MP3 is the most popular format for music players. Combines good compression (small files) with high quality. Supported by all browsers. |
| MP4 | .mp4 | MP4 is a video format, but can also be used for audio. MP4 video is the upcoming video format on the internet. This leads to automatic support for MP4 audio by all browsers. |
HTML Video
HTML video hanya support dengan 3 format yaitu mp4,ogg,dan webm.
| Browser | MP4 | WebM | Ogg |
|---|---|---|---|
| Internet Explorer | YES | NO | NO |
| Chrome | YES | YES | YES |
| Firefox | YES | YES | YES |
| Safari | YES | NO | NO |
| Opera | YES (from Opera 25) | YES | YES |
HTML Audio
HTML Audio hanya support dengan format mp3,wav,ogg
| Browser | MP3 | Wav | Ogg |
|---|---|---|---|
| Internet Explorer | YES | NO | NO |
| Chrome | YES | YES | YES |
| Firefox | YES | YES | YES |
| Safari | YES | YES | NO |
| Opera | YES | YES | YES |
<!DOCTYPE html> <html> <body> <audio controls> <source src="http://ayoberbisnis.co.id/_free/Syahnan%20Palipi%20-%20Budaya%20Bisnis.ogg" type="audio/ogg"> <source src="http://ayoberbisnis.co.id/_free/Syahnan%20Palipi%20-%20Budaya%20Bisnis.mp3" type="audio/mpeg"> Browser anda tidak support dengan elemen ini </audio> </body> </html>
HTML Plug-in
Tujuan dari plug-in, adalah untuk memperluas fungsionalitas dari browser HTML.
HTML Pembantu (Plug-in)
Aplikasi pembantu adalah program komputer yang memperluas fungsionalitas standar web browser.
Aplikasi bantuan juga disebut plug-in
Contoh terkenal plug-in yang applet Java.
Plug-in dapat ditambahkan ke halaman web dengan
< object > tag atau < embed > tag.< /object >
Plug-in dapat digunakan untuk berbagai tujuan: peta display, memindai virus, memverifikasi id bank Anda, dll
Catatan : Untuk menampilkan video dan audio: Gunakan
< video > dan < audio > tag. < Object > Elemen< Object > elemen didukung oleh semua browser.< Object > mendefinisikan sebuah objek tertanam dalam dokumen HTML.
Hal ini digunakan untuk menanamkan plug-in (seperti applet Java, pembaca PDF, Flash Player) dalam halaman web.
Contoh
< object width="400" height="50" data="bookmark.swf">< / object>
< Object> elemen juga dapat digunakan untuk memasukkan HTML dalam HTML:
Contoh
< object width="100%" height="500px" data="snippet.html">< /object>
Atau gambar jika Anda suka:
Contoh
< object data="audi.jpeg">< /object>
Catatan Perhatikan bahwa
< embed > elemen tidak memiliki tag penutup. Tidak dapat berisi teks alternatif.HTML YouTube
Cara termudah untuk memutar video dalam HTML, adalah dengan menggunakan YouTube.
<!DOCTYPE html> <html> <body> <iframe width="560" height="315" src="https://www.youtube.com/embed/wdM8NA6gNXs" frameborder="0" allowfullscreen></iframe> </body> </html>
HTML APIs
HTML Geolocation
Cari Posisi Pengguna
HTML Geolocation API digunakan untuk mendapatkan posisi geografis pengguna.
Karena ini bisa kompromi privasi pengguna, posisi tidak tersedia kecuali pengguna menyetujuinya.
Internet Explorer 9 +, Firefox, Chrome, Safari dan Opera mendukung Geolocation.
Catatan: Geolocation jauh lebih akurat untuk perangkat dengan GPS, seperti iPhone.
Menggunakan HTML Geolocation
Gunakan metode getCurrentPosition () untuk mendapatkan posisi pengguna.
Contoh di bawah ini adalah contoh sederhana Geolocation kembali garis lintang dan bujur dari posisi pengguna:
<!DOCTYPE html>
<html>
<body>
<p>klik untuk mendapatkan lokasi</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
</body>
</html>
HTML Drag/Drop
Drag dan drop adalah fitur yang sangat umum. Ini adalah ketika Anda "ambil" objek dan tarik ke lokasi yang berbeda.
Support dengan browser : Internet Explorer 9 +, Firefox, Opera, Chrome, dan Safari dukungan drag dan drop.
Catatan: Drag and drop tidak bekerja di Safari 5.1.7 dan versi sebelumnya.
<!DOCTYPE HTML>
<html>
<head>
<style>
#div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
</style>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<p>Drag the NOMOR1 image into the rectangle:</p>
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">
</body>
</html>
HTML Local Storage
Apa HTML Penyimpanan Lokal?
Dengan penyimpanan lokal, aplikasi web dapat menyimpan data secara lokal dalam browser pengguna.
Sebelum HTML5, data aplikasi harus disimpan dalam cookie, termasuk dalam setiap permintaan server. Penyimpanan lokal lebih aman, dan sejumlah besar data dapat disimpan secara lokal, tanpa mempengaruhi kinerja website.
Tidak seperti cookies, batas penyimpanan yang jauh lebih besar (setidaknya 5MB) dan informasi tidak pernah ditransfer ke server.
Penyimpanan lokal adalah per domain. Semua halaman, dari satu domain, dapat menyimpan dan mengakses data yang sama.
Penyimpanan lokal didukung di Internet Explorer 8+, Firefox, Opera, Chrome, dan Safari.
Catatan: Internet Explorer 7 dan versi sebelumnya, tidak mendukung Penyimpanan Web.HTML Penyimpanan Lokal Objects
HTML penyimpanan lokal menyediakan dua objek untuk menyimpan data pada klien:
window.localStorage - menyimpan data tanpa tanggal kedaluwarsa window.sessionStorage - menyimpan data untuk satu sesi (data hilang ketika tab ditutup)
Sebelum menggunakan penyimpanan lokal, periksa dukungan browser untuk localStorage dan sessionStorage:
if(typeof(Storage) !== "undefined") {
// Code for localStorage/sessionStorage.
} else {
// Sorry! No Web Storage support..
}
The localStorage Object
Objek localStorage menyimpan data tanpa tanggal kedaluwarsa. Data tidak akan dihapus ketika browser ditutup, dan akan tersedia pada hari berikutnya, minggu, atau tahun.
Contoh<div id="result"></div>
<script>
// Check browser support
if (typeof(Storage) != "undefined") {
// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
}
</script>
Keterangan
Buat nama localStorage / nilai pasangan dengan name = "nama belakang" dan value = "Smith" Ambil nilai "nama belakang" dan masukkan ke dalam elemen dengan id = "hasil"
Contoh di atas juga bisa ditulis seperti ini:// Store
localStorage.lastname = "Smith";
// Retrieve
document.getElementById("result").innerHTML = localStorage.lastname;
Sintaks untuk menghapus "nama belakang" item localStorage adalah sebagai berikut:
localStorage.removeItem("lastname");
Catatan: Nama / nilai pasangan selalu disimpan sebagai string. Ingatlah untuk mengkonversikannya ke format lain bila diperlukan!
Contoh berikut menghitung berapa kali pengguna telah mengklik tombol. Dalam kode ini string nilai dikonversi menjadi angka untuk dapat meningkatkan counter:
Contoh<!DOCTYPE html>
<html>
<head>
<script>
function clickCounter() {
if(typeof(Storage) !== "undefined") {
if (localStorage.clickcount) {
localStorage.clickcount = Number(localStorage.clickcount)+1;
} else {
localStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " + localStorage.clickcount + " time(s).";
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support web storage...";
}
}
</script>
</head>
<body>
<p><button onclick="clickCounter()" type="button">Click me!</button><p>
<div id="result"></div>
<p>Click the button to see the counter increase.</p>
<p>Close the browser tab (or window), and try again, and the counter will continue to count (is not reset).</p>
</body>
</html>
The sessionStorage Object
Objek sessionStorage sama dengan objek localStorage, kecuali bahwa itu menyimpan data hanya untuk satu sesi. Data akan dihapus saat pengguna menutup jendela browser.
Contoh berikut menghitung berapa kali pengguna telah mengklik tombol, dalam sesi saat ini:
Contoh<!DOCTYPE html>
<html>
<head>
<script>
function clickCounter() {
if(typeof(Storage) !== "undefined") {
if (sessionStorage.clickcount) {
sessionStorage.clickcount = Number(sessionStorage.clickcount)+1;
} else {
sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " + sessionStorage.clickcount + " time(s) in this session.";
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support web storage...";
}
}
</script>
</head>
<body>
<p><button onclick="clickCounter()" type="button">Click me!</button></p>
<div id="result"></div>
<p>Click the button to see the counter increase.</p>
<p>Close the browser tab (or window), and try again, and the counter is reset.</p>
</body>
</html>
HTML App Cache
Dengan aplikasi tembolok mudah untuk membuat versi offline aplikasi web, dengan membuat file manifest tembolok.
Apa Aplikasi Cache?
HTML5 memperkenalkan Cache aplikasi, yang berarti bahwa aplikasi web cache, dan dapat diakses tanpa koneksi internet.
Cache aplikasi memberikan sebuah aplikasi tiga keuntungan:
- Offline browsing - pengguna dapat menggunakan aplikasi ini ketika mereka sedang offline
- Kecepatan - cache sumber memuat lebih cepat
- Mengurangi beban server - browser hanya akan mendownload update / mengubah sumber daya dari server
<!DOCTYPE html> <html manifest="demo_html.appcache"> <body> <script src="demo_time.js"></script> <p id="timePara"><button onclick="getDateTime()">Get Date and Time</button></p> <p><img src="img_logo.gif" width="336" height="69"></p> <p>Try opening <a href="tryhtml5_html_manifest.htm" target="_blank">this page</a>, then go offline, and reload the page. The script and the image should still work.</p> </body> </html>
Setiap halaman dengan atribut manifest ditentukan akan di-cache ketika pengguna mengunjungi itu. Jika atribut nyata tidak ditentukan, halaman tidak akan di-cache (kecuali halaman ditentukan langsung dalam file manifest).
Ekstensi file yang dianjurkan untuk file manifest adalah: ".appcache"
Catatan :Sebuah file manifest perlu disajikan dengan jenis media yang benar, yaitu "text / cache-manifest". Harus dikonfigurasi pada server web.
The Manifest Berkas
File manifest adalah file teks sederhana yang memberitahu browser apa untuk cache (dan apa yang harus pernah Cache).
File manifest memiliki tiga bagian:
CACHE MANIFEST - File terdaftar di bawah header ini akan di-cache setelah mereka di-download untuk pertama kalinya
NETWORK - File terdaftar di bawah header ini membutuhkan koneksi ke server, dan tidak akan pernah cache
Cadangan - File terdaftar di bawah header ini menentukan halaman mundur jika halaman tidak bisa diakses
Hati-hati dengan apa yang Anda cache.
Setelah file cache, browser akan terus menunjukkan versi cache, bahkan jika Anda mengubah file di server. Untuk memastikan update browser cache, Anda perlu mengubah file manifest.
Catatan: Browser mungkin memiliki batas ukuran yang berbeda untuk data cache (beberapa browser memiliki batas 5MB per situs).
HTML Web Workers
Seorang pekerja web adalah JavaScript yang berjalan di latar belakang, tanpa mempengaruhi kinerja halaman.
Apa yang dimaksud dengan Pekerja Web?
Ketika menjalankan skrip di halaman HTML, halaman menjadi tidak responsif sampai script selesai.
Seorang pekerja web adalah JavaScript yang berjalan di latar belakang, independen dari script lain, tanpa mempengaruhi kinerja halaman. Anda dapat terus melakukan apa pun yang Anda inginkan: mengklik, memilih hal-hal, dll, sedangkan pekerja web berjalan di latar belakang.
HTML Web worker support dengan semua browser
<!DOCTYPE html>
<html>
<body>
<p>Count numbers: <output id="result"> </output> </p>
<button onclick="startWorker()">Start Worker</button>>
<button onclick="stopWorker()">Stop Worker</button>
<br><br>
<script>
var w;
function startWorker() {
if(typeof(Worker) !== "undefined") {
if(typeof(w) == "undefined") {
w = new Worker("demo_workers.js");
}
w.onmessage = function(event) {
document.getElementById("result").innerHTML = event.data;
};
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Workers...";
}
}
function stopWorker() {
w.terminate();
w = undefined;
}
</script>
</body>
</html>
Hasil
Count numbers:
HTML SSE
Server-Sent Events memungkinkan halaman web untuk mendapatkan update dari server.
Server-Sent Events - One Way Pesan
Sebuah peristiwa-server dikirim adalah ketika sebuah halaman web secara otomatis mendapatkan update dari server.
Hal ini juga mungkin sebelumnya, tetapi halaman web harus bertanya jika ada update yang tersedia. Dengan peristiwa-server dikirim, update datang secara otomatis.
Contoh: update Facebook / Twitter, update harga saham, feed berita, hasil olahraga, dll
Browser yang support
Server-Sent Events didukung di semua browser utama (Firefox,Opera,Google Chrome,Safari), kecuali Internet Explorer.
Menerima Server-Sent Pemberitahuan Acara
Objek EventSource digunakan untuk menerima pemberitahuan event-server dikirim:
<!DOCTYPE html>
<html>
<body>
<h1>Getting server updates</h1>
<div id="result"></div>
<script>
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "
";
};
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
</script>
</body>
</html>
- Membuat objek EventSource baru, dan menentukan URL dari halaman pengiriman update
- Setiap kali update diterima, acara onmessage terjadi
- Ketika acara onmessage terjadi, menempatkan data yang diterima ke dalam elemen dengan id = "hasil"
Periksa Server-Sent Events Dukungan
Pada contoh di atas tryit ada beberapa baris tambahan kode untuk memeriksa dukungan browser untuk acara-server dikirim:
if(typeof(EventSource) !== "undefined") {
// Yes! Server-sent events support!
// Some code.....
} else {
// Sorry! No server-sent events support..
}
Server-Side Kode Contoh
Sebagai contoh di atas untuk bekerja, Anda memerlukan server yang mampu mengirimkan update data (seperti PHP atau ASP).
Server-side sintaks aliran acara sederhana. Mengatur "Content-Type" header "text / event-stream". Sekarang Anda dapat mulai mengirim event stream.
Kode di PHP (demo_sse.php):< ?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
? >
Kode di ASP (VB) (demo_sse.asp):
< %
Response.ContentType = "text/event-stream"
Response.Expires = -1
Response.Write("data: The server time is: " & now())
Response.Flush()
% >
Keterangan:
Mengatur "Content-Type" header "text / event-stream"
Tentukan bahwa halaman tidak harus cache
Output data untuk mengirim (Selalu mulai dengan "Data:")
Siram data output kembali ke halaman web
The EventSource Object
Dalam contoh di atas kita menggunakan event onmessage untuk mendapatkan pesan. Tapi acara lainnya juga tersedia:
| Events | Description |
|---|---|
| onopen | Ketika koneksi ke server dibuka |
| onmessage | Ketika pesan diterima |
| onerror | Ketika terjadi kesalahan |
Tidak ada komentar:
Posting Komentar