Belajar Javascript: Mengenal Objek Math untuk Perhitungan Matematika

 

Apa itu AJAX?

AJAX merupakan singkatan dari Asynchronous Javascript Aand XML.

AJAX berfungsi untuk:

  • Mengambil data dari server secara background;
  • Update tampilan web tanpa harus relaod browser;
  • Mengirim data ke server secara background.

Pada dasarnya AJAX hanya menggunakan objek XMLHttpRequest untuk berkomunikasi dengan server.

Kita bisa bisa melihat proses AJAX melalui inspect elemen di web browser, lalu buka tab Network dan aktifkan filter XHR (XML HTTP Request).


Oh iya, meskipun di AJAX ada kata “XML”… Bukan berarti hanya mendukung format XML saja.

AJAX juga mendukung format JSON, Plain Text, dan HTML.

Cara Menggunakan Ajax di Javascript

Langkah-langkah menggunakan AJAX seperti ini:

  1. Membuat Objek Ajax

    var xhr = new XMLHttpRequest();
  2. Menentukan Fungsi Handler untuk Event

    xhr.onreadystatechange = function() { ... };
    xhr.onload = function() { ... };
    xhr.onerror = function() { ... };
    xhr.onprogress = function() { ... };
  3. Menentukan Method dan URL

    xhr.open("GET", url, true);
  4. Mengirim Request

    xhr.send();

Oke…

Mari kita coba.


methode GET. Lalu hasilnya langsung dimasukan ke dalam elemn <div id="hasil">.

Event yang kita gunakan adalah onreadystatechange, pada event ini kita bisa mengecek state dan status AJAX.

if(this.readyState == 4 && this.status == 200){
    //...
}

Kode state 4 artinya done dan status 200 artinya sukses. Berikut ini daftar kode state AJAX.1

KodeStateKeterangan
0UNSENTObjek AAJAX sudah dibuat tapi belum memanggil method open().
1OPENEDMethod open() sudah dipanggil.
2HEADERS_RECEIVEDMethod send() sudah dipanggil, dan di sini sudah tersedia header status.
3LOADINGDownloading; sedang mendownload data.
4DONEOperasi AJAX selesai.

Sementara untuk status header 200 adalah status HTTP Request. Biasanya kode di atas 200 artinya baik dan di bawah 200 artinya buruk.

Lalu coba perhatikan kode ini:

xhr.open("GET", url, true);

Terdapat tiga parameter yang kita berikan kepada method open():

  1. GET adalah metode request yang akan digunakan;
  2. url adalah alamat URL tujuan;
  3. true adalah untuk mengeksekusi AJAX secara asynchronous.

Mari kita lanjutkan dengan contoh yang lainnya. Silahkan ubah isi file HTML yang tadi menjadi seperti ini:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Belajar Dasar Ajax</title>
</head>

<body>
    <h1>Tutorial Ajax <button id="btn-clear" onclick="clearResult()">Clear</button></h1>
    <div id="hasil"></div>
    <button id="button" onclick="loadContent()">Load Content</button>

    <script>
        function loadContent() {
            var xhr = new XMLHttpRequest();
            var url = "https://api.github.com/users/petanikode";

            xhr.onloadstart = function () {
                document.getElementById("button").innerHTML = "Loading...";
            }

            xhr.onerror = function () {
                alert("Gagal mengambil data");
            };

            xhr.onloadend = function () {
                if (this.responseText !== "") {
                    var data = JSON.parse(this.responseText);
                    var img = document.createElement("img");
                    img.src = data.avatar_url;
                    var name = document.createElement("h3");
                    name.innerHTML = data.name;

                    document.getElementById("hasil").append(img, name);
                    document.getElementById("button").innerHTML = "Done";

                    setTimeout(function () {
                        document.getElementById("button").innerHTML = "Load Lagi";
                    }, 3000);
                }
            };

            xhr.open("GET", url, true);
            xhr.send();
        }

        function clearResult() {
            document.getElementById("hasil").innerHTML = "";
        }
    </script>
</body>
</html>

Komentar

Postingan populer dari blog ini

Belajar Python: Cara Membaca dan Menulis File di Python