Monday, July 13, 2015

AJAX dengan JavaScript Mentah

Mendapatkan konten dari dokumen HTML yang lain pada domain yang sama tanpa menggunakan jQuery.

/**
 * Get data from a URL
 * @param  {String} url        The URL to get
 * @param  {Function} success  Callback to run on success
 * @param  {Function} error    Callback to run on error
 */

var getURL = function(url, success, error) {
    // Feature detection
    if (!window.XMLHttpRequest) return;
    // Create new request
    var request = new XMLHttpRequest();
    // Setup callbacks
    request.onreadystatechange = function() {
        // If the request is complete
        if (request.readyState === 4) {
            // If the request failed
            if (request.status !== 200) {
                if (error && typeof error === "function") {
                    error(request.responseText, request);
                }
                return;
            }
            // If the request succeeded
            if (success && typeof success === "function") {
                success(request.responseText, request);
            }
        }
    };
    // Get the HTML
    request.open('GET', url);
    request.send();
};

Penggunaan

Dasar:

getURL(
    '/about',
    function(data) {
        // On success…
    },
    function(data) {
        // On failure…
    }
);

Cari elemen spesifik pada halaman yang dipanggil dan masukkan kontennya ke dalam elemen tertentu pada halaman saat ini:

getURL(
    '/about',
    function(data) {
        // Create a `<div>` and inject the HTML into it
        var div = document.createElement(div);
        div.innerHTML = data;
        // Find the element you’re looking for in the `<div>`
        var from = div.querySelector('#some-element');
        var to = document.querySelector('#another-element');
        // Quit if the element or the place where you want to inject it doesn’t exist
        if (!from || !to) return;
        // Inject the element into the DOM
        to.innerHTML = from.innerHTML;
    }
);

Referensi: Making AJAX Requests with Native JavaScript

Labels: , ,

13 Comments:

At Monday, July 13, 2015 at 5:38:00 AM GMT+7, Blogger Masrizal said...

pertamax kah haha

 
At Monday, August 3, 2015 at 10:33:00 AM GMT+7, Blogger Beben Koben said...

PERTALITE \o/

 
At Monday, August 10, 2015 at 4:26:00 PM GMT+7, Anonymous Anonymous said...

Kalau untuk blogger, bisa diterapkan pada widget apa saja nih min...
Kok penjelasannya nggak ada, nanti kita pembaca jadi bingung cara makenya... kalau mimin yang mastah okelah ^____^

 
At Saturday, August 29, 2015 at 7:51:00 PM GMT+7, Blogger Azhari said...

Kang Taufik, bisa minta alamat emailnya?
menerima design blogger template?
Thanks
Ari

 
At Saturday, September 5, 2015 at 1:48:00 PM GMT+7, Blogger Fariz said...

Ini yang pas itu aku tanyakan di FB ya mas Taufik ?

 
At Sunday, September 6, 2015 at 9:03:00 AM GMT+7, Blogger Taufik Nurrohman said...

Mensana incorporesano mamamia amigos prosiempre.

 
At Sunday, September 6, 2015 at 9:06:00 AM GMT+7, Blogger Taufik Nurrohman said...

Bisa dimodifikasi untuk membuat versi navigasi halaman AJAX yang ini menjadi lebih sederhana dan ringan.

 
At Sunday, September 6, 2015 at 9:13:00 AM GMT+7, Blogger Taufik Nurrohman said...

Alamat email ada di halaman Pasang Iklan mas. Sekarang Saya sudah tidak lagi menerima jasa desain tema blogspot karena sudah kadung fokus ke hal yang lain, tapi kalau mau tanya-tanya yang lain boleh.

 
At Sunday, September 6, 2015 at 9:24:00 AM GMT+7, Blogger Taufik Nurrohman said...

Bukan, lebih tepatnya yang ini → https://github.com/tovic/dte-project/blob/d3189debf5c5faa39021ce1b8ec147007208fe4b/json-demo/index-1.html#L65&L76

 
At Friday, September 25, 2015 at 9:21:00 PM GMT+7, Anonymous Anonymous said...

saya nunggu ajax JavaScript yang matang aja bang :D

 
At Monday, October 5, 2015 at 9:16:00 AM GMT+7, Blogger Unknown said...

min kenapa javascript blog saya.. setiap selesai post artikel jadi besar ukurannya..
sorry klo saya tanya saya masih newbie

 
At Thursday, October 8, 2015 at 10:44:00 PM GMT+7, Blogger Kang Ismet said...

tinggal edit css aja kayaknya :0

 
At Saturday, January 2, 2016 at 11:39:00 PM GMT+7, Blogger Iwan Efendi said...

Bener tuh kang Ismet... :0

 

Post a Comment

<< Home