Skip to main content

[AJAX] My first ajax script

Akhirnya aku belajar memanfaatkan Ajax, untuk aplikasi berbasis web. Sebenarnya sudah lama pengen ngoprek, dan memanfaatkan kehebatan teknologi ini, tapi karena terlalu sibuk, ampe gak sempat.

Untunglah, ada Ko' Dedi yang rajin, aku tinggal contek dan pelajari aja script itu. Script ajax pertama ini kupakai di website pribadiku, dan masih cukup sederhana. Intinya cuma mengambil content dari server saat ada trigger (menu di-klik), dan langsung menampilkan hasil yang di terima ke tempat tertentu (DIV). Aku belum sampai belajar memproses parsing data yang cukup kompleks, dalam format XML ataupun format lainnya.
  // deklarasi variabel global   var http = createRequestObject(); // untuk manampung http request .. langsung dibuat   var objRefresh = 0;   var isBusy = false;   var x=0;   var busyText = "Loading data, please wait ... ";    // fungsi ini digunakan untuk membentuk objek http request, terlebih dulu memeriksa   // jenis browser, karena tiap browser (khususnya IE) punya cara tersendiri   function createRequestObject()   {     var ro;     var browser = navigator.appName;        if(browser == "Microsoft Internet Explorer")      {       try {         ro = new ActiveXObject("Msxml2.XMLHTTP");       }       catch (othermicrosoft) {         try {         ro = new ActiveXObject("Microsoft.XMLHTTP");         }         catch (failed) {         ro = false;         }       }     }     else      // on every other browser, we can directly create a new XMLHttpRequest object     {       try {         ro = new XMLHttpRequest();       }       catch (failed) {         ro = false;       }      }     if (!ro)       alert("Error initializing XMLHttpRequest!");     else return ro;   } // createRequestObject    // fungsi menampilkan data yang diterima dari request ke server   function showData(){     if(http.readyState == 4) {       var response = http.responseText;       if (response.charAt(0)==0)       {         // jika nilainya kosong, kadang ada karakter NULL         response = http.responseText.substring(2);       }        // tampilkan data       var info = document.getElementById("content");       info.innerHTML = response;     }   }    var currObj = "";    // fungsi untuk melakukan pemanggilan data   function getData(nama) {     /* ini dipakai jika proses akan dilakukan secara periodik     //if (objRefresh) clearTimeout(objRefresh); // ini      //objRefresh = setTimeout("getData()", 900000);     */     if (!isBusy)     {       currObj = "id_" + nama;       isBusy = true;
// jika tidak dalam kondisi sibuk, lakukan request ke server, sesuai halaman yang melakukan proses http.open("get", "index.php?getData="+nama,true); http.onreadystatechange = showData; // memanggil fungsi yang akan menampilkan data (INGAT: jangan pakai parameter, bisa error :( ) http.send(null); isBusy = false; } } //getData
----

Comments

Popular posts from this blog

PostGreSQL :: Hitung Umur

Ternyata untuk menghitung umur dari data yang disimpan di PostGreSQL sangat gampang. PostGreSQL sendiri sudah menyediakan fungsi yang mendukung. Beberapa fungsi yang bisa dipakai adalah AGE dan EXTRACT. AGE dipakai untuk menghitung umur dari sebuah data, dibandingkan dengan hari ini, atau dengan data lain (tipenya timestamp). Misal: age(timestamp '1980-09-27'), akan menghasilkan nilai (bertipe interval) "24 years 1 mon 25 days". Nah, kalau mau mengambil nilai tahunnya saja, tinggal menggunakan EXTRACT Contoh: EXTRACT(year FROM AGE(timestamp '2001-09-27')), hasilnya akan jadi 24.

PHP :: Selisih Jam

Setelah kemarin kesulitan untuk melakukan increment ataupun decrement terhadap variabel waktu (date/time) di PHP, kali ini nemuin masalah untuk mencari selisih waktu (dari satu jam ke jam tertentu), yang perlu untuk ngitung lembur karyawan. Tadinya kepikiran untuk buat fungsi sendiri, yang flow -nya kira-kira begini: - masing-masing dipisah menjadi jam, menit, detik - bandingkan antara keduanya. - lakukan pengurangan terhadap masing-masing komponen (jam, menit dan detik) - gabungkan hasil perhitungan ... (selisih jam + selisih menit + selisih detik) Tapi waktu aku ingat kasus Next Date, ... muncul ide untuk menggunakan cara yang sama, yaitu memanfaatkan format UNIX timestamp, terus nyoba mencari selisihnya. TERNYATA BERHASIL !!! Flownya seperti ini: - masing-masing dipisah menjadi jam, menit,detik - ubah masing-masing ke format timestamp, gunakan fungsi mktime() - kurangkan kedua jam - hasilnya dibagi 60 (karena satuannya pakai menit), sementara selisih timestamp itu dalam detik Algori

Delphi :: Split String

Akhirnya ketemu juga cara untuk melakukan split string. (Terbiasa pakai PHP sih, yang sangat memanjakan dalam pengelolaan string.) Di sini memanfaatkan TStringList, unit Classes. // procedure untuk split string procedure Split (const Delimiter: Char; // delimiter charachter Input: string; // input string const Strings: TStrings) ; // list of string result begin Assert(Assigned(Strings)) ; Strings.Clear; Strings.Delimiter := Delimiter; Strings.DelimitedText := Input; end; // contoh pemakaian procedure TForm1.Button1Click(Sender: TObject) ; var A: TStringList; begin A := TStringList.Create; try Split(' ', 'your delphi guide', A) ; ShowMessage(a[0]) ; //your ShowMessage(a[1]) ; //delphi ShowMessage(a[2]) ; //guide finally A.Free; end; end; Source : http://delphi.about.com/cs/adptips2002/a/bltip1102_5.htm Wheew .. akhirnya. One step ahead!!