AJAX merupakan singkatan dari Asynchronous Javascript And 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. Bisa dilihat proses AJAX melalui inspect elemen di web browser, lalu buka tab Network dan aktifkan filter XHR (XML HTTP Request).
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:
- Membuat Objek Ajax
- Menentukan Fungsi Handler untuk Event
- Menentukan Method dan URL
- Mengirim Request
- Contoh penggunaannya
Hasil:
Pada contoh di atas, data diambil dari server Github dengan methode GET. Lalu hasilnya langsung dimasukan ke dalam elemn <div id=”hasil”>. Event yang digunakan adalah onreadystatechange, pada event ini bisa mengecek state dan status AJAX.
Kode state 4 artinya done dan status 200 artinya sukses. Berikut ini daftar kode state AJAX.
Kode | State | Keterangan |
0 | UNSENT | Objek AAJAX sudah dibuat tapi belum memanggil method open(). |
1 | OPENED | Method open() sudah dipanggil. |
2 | HEADERS_RECEIVED | Method send() sudah dipanggil, dan di sini sudah tersedia header status. |
3 | LOADING | Downloading; sedang mendownload data. |
4 | DONE | Operasi 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 pada kode dibawah ini:
Terdapat tiga parameter yang kita berikan kepada method open():
- GET adalah metode request yang akan digunakan;
- url adalah alamat URL tujuan;
- true adalah untuk mengeksekusi AJAX secara asynchronous.
AJAX Menggunakan JQuery
JQuery adalah library Javascript yang menyederhanakan fungsi-fungsi Javascript. Pada JQuery, AJAX dapat dibuat seperti ini:
Contoh:
Hasil:
Dengan fungsi $(“#result”).load(), data bisa diambil dengan AJAX dan langsung menampilkannya pada elemen yang dipilih. Fungsi JQuery load() cocoknya untuk mengambil bagian dari HTML untuk ditampilkan. Untuk contoh menggunakan GET:
AJAX Menggunakan Fetch API
Fetch artinya mengambil. Metode fetch bisa jadi alternatif untuk AJAX. Methode ini mulai hadir pada Javascript versi ES6. Perbedaanya dengan XMLHttpRequest dan JQuery adalah:
- Fetch akan mengembalikan sebuah promise;
- Secara bawaan (default), fetch tidak akan mengirim atau menerima cookie dari server.2
- Fetch dapat digunakan di web browser dan juga Nodejs dengan modul node-fetch.
Berikut ini sintak dasar penggunaan Fetch.
AJAX Menggunakan Axios
Axios hampir sama seperti fetch. Bedanya Axios adalah sebuah library sedangkan fetch adalah API yang tersedia di web browser. Axios juga sama-sama bisa digunakan di web browser dan Nodejs.
Contoh AJAX dengan Axios: