Langsung ke konten utama

Asynchronous Javascript And XML (AJAX)

Apa itu AJAX?

AJAX atau Asynchronous JavaScript and XML adalah teknik yang digunakan untuk membuat website yang dinamis. Artinya website mampu mengupdate dan menampilkan data baru dari server tanpa perlu melakukan reload. 

Salah satu contoh penggunaannya misalnya pada update jumlah angka likes dan komentar pada media sosial Instagram, Facebook, Twitter, dan lainnya. 

Sesuai namanya, AJAX terdiri dari JavaScript dan XML yang bekerja bersama. JavaScript adalah bahasa pemrograman untuk mengelola konten website yang dinamis.Sementara XML (eXtensible Markup Language) digunakan untuk memuat dan membawa data dari server ke browser. 

AJAX JavaScript dan XML ini bekerja secara asynchronous untuk berkomunikasi dengan server. Proses pertukaran informasi ini dilakukan di background. Artinya, saat AJAX JavaScript dan XML bekerja, halaman dapat tetap diakses oleh pengunjung website. 

Cara Kerja AJAX

Kalau dijabarkan dengan contoh sebuah fitur pada website, begini cara kerja AJAX: 

  • Browser akan memanggil AJAX javascript untuk mengaktifkan XMLHttpRequest dan mengirimkan HTTP Request ke server. 
  • XMLHttpRequest dibuat untuk proses pertukaran data di server secara asinkron. 
  • Server menerima, memproses, dan mengirimkan data kembali ke browser. 
  • Browser menerima data tersebut dan langsung ditampilkan di halaman website, tanpa perlu reload atau membuat halaman baru. 

Fungsi AJAX 

Apa saja fungsi AJAX untuk website?Ini beberapa fungsinya: 

  • Mengirim dan Mengambil Data dari Server 

AJAX dapat digunakan untuk mengirim pesan ke server lalu mengambil hasil data dari server ke browser. Prinsip yang dikerjakan pun adalah asynchronous. Jadi, selama proses mengirim pesan terjadi, browser bisa tetap terus digunakan sambil menunggu respon dari server. 

  • Mengupdate Tampilan Website Tanpa Harus Reload 

Semua orang suka yang praktis. Nah, dengan adanya AJAX, pengunjung website bisa lebih nyaman mengakses website tanpa perlu berulang kali reload halaman. Hal ini terjadi karena AJAX hanya mengirimkan sebagian data yang dibutuhkan untuk proses saja. 

  • Membuat Website Lebih Cepat dan Responsif 

Dengan adanya AJAX, hanya data yang diperlukan saja yang akan direquest ke server. Maka, proses di server bisa jadi lebih cepat dan data bisa langsung dikirim kembali ke browser. Imbas yang dirasakan pengunjung adalah loading website jadi lebih cepat. 

Jadi, pengunjung tak perlu menunggu lama ketika mengakses fitur di website seperti chat, komentar, dan lainnya.

Pada dasarnya, AJAX hanya menggunakan objek XMLHttpRequest untuk berkomunikasi dengan server. Kemudian mari bedah kodenya

Pertama-tama kita buat file html biasa, di dalam body kita membuat button dan div untuk menampilkan text

1
2
3
4
5
<button>
    click me!
</button>
<div id='h'>
</div>

Lalu kita buat function createRequestObject() untuk membuat request, apabila browsernya internet explorer untuk membuatnya menggunakan ActiveXObject(“Microsoft.XMLHTTP”) jika broweser yang lainya menggunakan XMLHttpRequest() , kodenya seperti berikut

1
2
3
4
5
6
7
8
9
10
11
12
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
 
var http = createRequestObject();

Setelah itu di simpan kedalam variabel http, selanjutnya membuat function untuk mengirim request ke server

1
2
3
4
5
function sndReq(qry) {
        http.open('get', 'backend.rpc?action='+qry);
        http.onreadystatechange = handleResponse;
        http.send(null);
    }

Kemudian kita buat lagi satu function untuk menangani respon yang di kirimkan server, data yang dikirim bertipe JSON agar bisa di tampilkan dengan mudah maka JSON di ubeh ke array dengan JSON.parse(), kodenya seperti berikut

1
2
3
4
5
6
7
8
9
10
11
12
function handleResponse(){
        if(http.readyState == 4){
            var response = http.responseText;
            var data = JSON.parse(response);
            var tabel = '<table border="1px">';
            for(i in data ){
                tabel += '<tr><td>' + data[i]['nim'] +'</td><td>'+data[i]['nama'] +'</td></tr>';
            }
            tabel += '</table>';
            document.getElementById("h").innerHTML = tabel;
        }
    }

Setelah selesai kita rubah di bagian html tadi dengan menambahkan atribut onclik pada button dengan “javascript:sndReq(‘h’); ” karena kita membutuhkan backend untuk menangani request kita buat terlebih dahulu seperti berikut ini

backend.rpc

1
2
3
4
5
6
7
8
{%
    route = _QUERY_STRING['route']
    if(route == 'h'):
        f = open('htdocs/b.json', 'r')
        data = f.read()
        f.close()
        emit(data)
%}

Lalu yang terakhir kita membutuhkan data yang akan di tampilkan, buat file json kemudian isikan dengan array dua dimensi

b.json

1
2
3
4
[
    {"nim":"123","nama":"ridho"},
    {"nim":"567","nama":"yudha"}
]

untuk lebih jelasnya kode html seperti berikut ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script lang="js">
    function createRequestObject() {
        var ro;
        var browser = navigator.appName;
        if(browser == "Microsoft Internet Explorer"){
            ro = new ActiveXObject("Microsoft.XMLHTTP");
        }else{
            ro = new XMLHttpRequest();
        }
        return ro;
    }
 
    var http = createRequestObject();
 
    function sndReq(qry) {
        http.open('get', 'backend.rpc?action='+qry);
        http.onreadystatechange = handleResponse;
        http.send(null);
    }
 
    function handleResponse(){
        if(http.readyState == 4){
            var response = http.responseText;
            var data = JSON.parse(response);
            var tabel = '<table border="1px">';
            for(i in data ){
                tabel += '<tr><td>' + data[i]['nim'] +'</td><td>'+data[i]['nama'] +'</td></tr>';
            }
            tabel += '</table>';
            document.getElementById("h").innerHTML = tabel;
        }
    }
</script>
<body>
    <button onclick="javascript:sndReq('h');">
        Clik Me!
    </button>
    <div id='h'>
    </div>
</body>
</html>

Lalu jalankan server dan akses html lalu klik tombol maka akan tampil data dari json.


Referensi :

https://www.niagahoster.co.id/blog/ajax-javascript/

Komentar

Postingan populer dari blog ini

Membuat Halaman CheckOut Dengan NextJS & Bulma

Apa itu Next.js?  Next.js merupakan sebuah React framework yang dibentuk buat mengatasi kasus client-side rendering yang dimiliki React. Sebuah halaman website yang dibentuk memakai React ‘terasa ringan’ lantaran tampilan website sangat interaktif.  Selain itu, ketika data berubah, React menggunakan efisien akan mengupdate bagian menurut halaman website yang memang perlu diupdate tanpa perlu reload satu halaman penuh.  Untuk menerima itu seluruh, client wajib load seluruh file JavaScript sebelum konten halaman ditampilkan. apabila file JS relatif akbar maka ketika yang diperlukan buat load pertama kali pula sebagai lebih lama.  Masalah lain menurut client-side rendering merupakan SEO, terdapat kemungkinan web crawler berusaha mengindex halaman yang belum terselesaikan dirender sepenuhnya (lantaran ketika load yang lama). Dan menduga web tadi blank.  Kedua kasus diatas bisa diselesaikan menggunakan teknik pre-rendering. Yaitu halaman HTML dan file JavaScript pada...

Membuat Database dan Tabel Di MySql Workbench ~ Part 1

MySQL adalah salah satu  relational database management system  atau RDBMS yang populer di kalangan  programmer  merupakan salah satu  database  yang sudah berumur. Diciptakan oleh  Michael Widenius , pada akhirnya MySQL diakusisi oleh  Oracle  dan kini memiliki saudara yang bernama MariaDB. Meski begitu, MySQL masih banyak digunakan  developer  aplikasi selain itu kampus pun masih banyak mengajarkan  database  dengan menggunakan MySQL. Sudah saatnya memang kampus menggunakan MariaDB bila  aware  dengan  open source . Walaupun ada sedikit cerita diantara mereka berdua. Kita masih dapat menggunakan MySQL dan akan mudah berpindah ke MariaDB bila kita sudah siap. Sebagai contoh sekarang kita akan membuat sebuah  database  bioskop yang menangani aplikasi pembelian tiket film. Membuat Database Disini kamu tidak akan mempelajari bagaimana membuat aplikasi dengan bahasa pemrograman tertentu. Kamu hanya ak...

Konsep Scale Up Platform Wlijo

     Menjadi orang awam dalam bidang pemrograman bukanlah hal yang memalukan jika ada keinginan belajar dan berkembang. Ada banyak langkah awal untuk memulai belajar pemrograman mulai dari belajar otodidak, kuliah, kursus, atau belajar online di website yang berbayar ataupun gratis.       Tuntutan industri yang serba online membuat kita untuk berlomba lomba belajar bahasa pemrograman sehingga banyak yang terjun langsung ke dalam jurang coding dengan memimpikan indahnya mempunyai startup besar seperti Tokopedia dan GoJek yang levelnya unicorn. Bahkan dengan mudahnya dapat memimpikan seorang investor yang siap bergabung dengan startup yang kita buat.       Tapi pernahkah kalian berfikir mulai dari mana harus belajar? Oke kita akan bahas dalam artikel ini, ada beberapa konsep pembelajaran dasar pengembangan yang digunakan platform wlijo untuk memulai belajar pemrograman. Konsep Algoritma Pemrograman      Untuk mulai terj...