Asynchronous JavaScript and XMLHTTP, atau disingkat AJaX, adalah suatu teknik pemrograman berbasis web untuk menciptakan aplikasi web interaktif. Tujuannya adalah untuk memindahkan sebagian besar interaksi pada komputer web surfer, melakukan pertukaran data dengan server di belakang layar, sehingga halaman web tidak harus dibaca ulang secara keseluruhan setiap kali seorang pengguna melakukan perubahan. Hal ini akan meningkatkan interaktivitas, kecepatan, dan usability. Ajax merupakan
- DOM yang diakses dengan client side scripting language, seperti VBScript dan implementasi ECMAScript seperti JavaScript dan JScript, untuk menampilkan secara dinamis dan berinteraksi dengan informasi yang ditampilkan
- Objek XMLHTTP dari Microsoft atau XMLHttpRequest yang lebih umum di implementasikan pada beberapa browser. Objek ini berguna sebagai kendaraan pertukaran data asinkronus dengan web server. Pada beberapa framework AJAX, element HTML IFrame lebih dipilih daripada XMLHTTP atau XMLHttpRequest untuk melakukan pertukaran data dengan web server.
- XML umumnya digunakan sebagai dokumen transfer, walaupun format lain juga memungkinkan, seperti HTML, plain text. XML dianjurkan dalam pemakaian teknik AJaX karena kemudahan akses penanganannya dengan memakai DOM
- JSON dapat menjadi pilihan alternatif sebagai dokumen transfer, mengingat JSON adalah JavaScript itu sendiri sehingga penanganannya lebih mudah
Seperti halnya DHTML, LAMP, atau SPA, Ajax bukanlah teknologi spesifik, melainkan merupakan gabungan dari teknologi yang dipakai bersamaan. Bahkan, teknologi turunan/komposit yang berdasarkan Ajax, seperti AFLAX sudah mulai bermunculan.[http://id.wikipedia.org/wiki/AJAX]
Istilah “Ajax” pertama kali dipublikasikan oleh Jesse James Garrett pada Februari 2005.
Istilah ini terlintas di benak Garrett saat ia memikirkan sebuah terminologi sederhana untuk merepresentasikan sekumpulan teknologi yang ia usulkan pada seorang kliennya. Sekalipun istilah “Ajax” telah muncul sejak 2005, sebagian besar teknologi yang membangun Ajax telah dikembangkan satu dekade lebih awal oleh
Microsoft melalui teknik Remote Scripting untuk melakukan pemanggilan (loading) suatu halaman secara asinkron tanpa harus memanggil ulang seluruh data, antara lain dengan memanfaatkan elemen IFRAME (diperkenalkan pada browser Internet Explorer 3 pada 1996) dan LAYER (diperkenalkan pada Netscape 4 pada 1997, dan kemudian ditinggalkan pada tahap awal pengembangan browser Mozilla).
Kedua tipe elemen tersebut memiliki atribut SRC yang dapat memanggil suatu URL eksternal dan dengan menjalankan suatu halaman yang mengandung JavaScript yang memanipulasi halaman induk, menghasilkan efek yang mirip penggunaan teknologi Ajax. Set teknologi client-side ini biasanya dikelompokkan dalam terminologi generik DHTML.
Sementara itu, Macromedia Flash, mulai dari versi 4, telah menjalankan file XML dan CSV dari remote server tanpa perlu memanggil ulang (reloading) halaman web. Microsoft Remote Scripting (MSRS) yang diperkenalkan pada 1998 adalah pengganti yang lebih elegan terhadap teknik-teknik yang disebut diatas, dengan data diakses oleh suatu JavaApplet, dimana sisi client dapat berkomunikasi memanfaatkan JavaScript. Teknik ini bekerja baik pada browser Internet Explorer versi 4 maupun pesaingnya saat itu, Netscape Navigator versi 4. Microsoft lantas mengembangkan objek XMLHttpRequest pada Internet Explorer 4 dan untuk pertama kalinya memanfaatkan teknik ini melalui XMLHttpRequest pada Outlook Web Access yang disertakan pada perangkat lunak Microsoft Exchange Server 2000. Selanjutnya, Remote Scripting Framework seperti ARSCIF muncul pada 2003, tidak lama sebelum Microsot memperkenalkan Callback pada ASP.NET. Sebagai tambahan, Konsorsium World Wide Web mengeluarkan beberapa rekomendasi yang juga mengijinkan komunikasi dinamis antara server dan user agent, walaupun hanya sedikit diantaranya yang mendapatkan dukungan, diantaranya adalah elemen object pada HTML 4 untuk merekatkan (embed) konten dinamis pada dokumen (menggantikan frame inline pada XHTML 1.1) serta spesifikasi Load and Save pada Document Object Model (DOM) Level 3. Alasan paling jelas untuk memanfaatkan Ajax adalah meningkatkan pengalaman browsing pengguna. Halaman yang memanfaatkan teknologi Ajax lebih berlaku sebagai aplikasi yang berdiri sendiri ketimbang sebagai sebuah halaman web. Mengklik suatu link pada halaman web berteknologi Ajax akan membuat halaman terbarui secara dinamis, sementara browser tidak perlu memanggil ulang seluruh halaman. Dengan demikian diperoleh peningkatan kecepatan respon.
Dengan meng-generate HTML secara lokal dalam browser, dan hanya melakukan panggilan JavaScript terhadap data di server, halaman web berbasis Ajax dapat dipanggil relatif cepat akibat kecilnya trafik antara server-client. Ini akan sangat bermanfaat pada halaman web dengan data berjumlah banyak dan harus ditampilkan dalam beberapa halaman. Keuntungan ini semakin terasa kalau kita mempertimbangkan penggunaan elemen-elemen HTML yang sering muncul berulangkali dalam satu halaman (seperti elemen TR dan TD untuk menampilkan tabel).
Penggunaan teknologi Ajax dapat mengurangi load halaman karena elemen-elemen tersebut dapat di-generate secara lokal. Sebagai bagian dari skema “dipanggil apabila dibutuhkan” (load on demand), beberapa aplikasi berbasis web menjalankan bagian dari “event handler” dan kemudian menjalankan fungsi-fungsi secara on the fly. Teknik ini secara signifikan mengurangi konsumsi bandwidth untuk aplikasi web yang memiliki alur logika dan fungsionalitas yang kompleks.
Namun demikian, penggunaan teknologi Ajax juga menyimpan sejumlah kelemahan. Diantaranya, halaman yang di-generate secara dinamis tidak teregister pada “history” browser sehingga penggunaan tombol back dan forward mungkin tidak akan bekerja semestinya. Para pengembang telah mengimplementasikan berbagai solusi terhadap permasalahan ini, diantaranya adalah penggunaan elemen IFRAME yang tersembunyi untuk meminta perubahan yang dapat dikenali oleh fungsi history pada browser yang kemudian dimanfaatkan oleh fungsi tombol back. Contoh penggunaan teknik ini bisa dilihat pada situs Google Maps, dimana perintah pencarian bekerja pada elemen IFRAME yang tak terlihat, namun hasil pencarian diarahkan pada elemen halaman yang terlihat. Sebagai catatan, Konsorsium World Wide Web (W3C) tidak memasukkan elemen IFRAME dalam standar XHTML 1.1 dan lebih merekomendasikan elemen OBJECT. Berikutnya adalah kesulitan yang dihadapi pengguna saat mem-bookmark halaman yang di-generate secara otomatis oleh Ajax. Solusinya juga sudah ada, salah satunya dengan memanfaatkan URL fragment identifier (bagian dari URL setelah tanda ‘#’) untuk menyimpan jejak sehingga pengguna dapat kembali ke status yang telah ditandai. Hal ini dimungkinkan karena kebanyakan browser mengijinkan JavaScript untuk memperbarui fragment identifier suatu URL secara dinamis, dengan demikian, aplikasi Ajax dapat menyimpan sebuah kondisi saat pengguna melakukan perubahan pada status aplikasi. Solusi ini juga dapat meningkatkan dukungan terhadap penggunaaan tombol back. Namun demikian, ini masih bukan solusi yang komplit. Isu lainnya menyangkut optimasi mesin pencari. Situs web yang memanfaatkan Ajax untuk memanggil data yang seharusnya diindeks oleh mesin pencari perlu bersikap hati-hati dengan menyediakan data yang ekuivalen pada URL-nya dalam format yang bisa dibaca oleh mesin pencari. Ini karena robot pada mesin pencari biasanya tidak menjalankan kode-kode JavaScript yang dibutuhkan dalam fungsionalitas Ajax. Ini bukan masalah yang spesifik untuk Ajax mengingat isu yang sama juga dialami situs yang menyediakan data dinamis yang membutuhkan page refresh oleh pengguna, misalnya penekanan tombol submit pada akhir pengisian formulir (secara umum, masalah ini kadang-kadang dirujuk sebagai hidden web).
Ketergantungan pada JavaScript juga menjadi isu tersendiri. JavaScript sering diimplementasikan secara berbeda di tiap browser. Karena itu, situs yang menggunakan JavaScript perlu diuji pada sejumlah browser yang berbeda untuk meyakinkan kompatibilitasnya. Tidak jarang kode JavaScript harus ditulis dua kali, satu bagian untuk browser IE dan bagian lain untuk Mozilla.
Masalah juga kerap muncul apabila pengguna tidak mengaktifkan dukungan JavaScript pada browsernya.
Microsoft melalui teknik Remote Scripting untuk melakukan pemanggilan (loading) suatu halaman secara asinkron tanpa harus memanggil ulang seluruh data, antara lain dengan memanfaatkan elemen IFRAME (diperkenalkan pada browser Internet Explorer 3 pada 1996) dan LAYER (diperkenalkan pada Netscape 4 pada 1997, dan kemudian ditinggalkan pada tahap awal pengembangan browser Mozilla).
Kedua tipe elemen tersebut memiliki atribut SRC yang dapat memanggil suatu URL eksternal dan dengan menjalankan suatu halaman yang mengandung JavaScript yang memanipulasi halaman induk, menghasilkan efek yang mirip penggunaan teknologi Ajax. Set teknologi client-side ini biasanya dikelompokkan dalam terminologi generik DHTML.
Sementara itu, Macromedia Flash, mulai dari versi 4, telah menjalankan file XML dan CSV dari remote server tanpa perlu memanggil ulang (reloading) halaman web. Microsoft Remote Scripting (MSRS) yang diperkenalkan pada 1998 adalah pengganti yang lebih elegan terhadap teknik-teknik yang disebut diatas, dengan data diakses oleh suatu JavaApplet, dimana sisi client dapat berkomunikasi memanfaatkan JavaScript. Teknik ini bekerja baik pada browser Internet Explorer versi 4 maupun pesaingnya saat itu, Netscape Navigator versi 4. Microsoft lantas mengembangkan objek XMLHttpRequest pada Internet Explorer 4 dan untuk pertama kalinya memanfaatkan teknik ini melalui XMLHttpRequest pada Outlook Web Access yang disertakan pada perangkat lunak Microsoft Exchange Server 2000. Selanjutnya, Remote Scripting Framework seperti ARSCIF muncul pada 2003, tidak lama sebelum Microsot memperkenalkan Callback pada ASP.NET. Sebagai tambahan, Konsorsium World Wide Web mengeluarkan beberapa rekomendasi yang juga mengijinkan komunikasi dinamis antara server dan user agent, walaupun hanya sedikit diantaranya yang mendapatkan dukungan, diantaranya adalah elemen object pada HTML 4 untuk merekatkan (embed) konten dinamis pada dokumen (menggantikan frame inline pada XHTML 1.1) serta spesifikasi Load and Save pada Document Object Model (DOM) Level 3. Alasan paling jelas untuk memanfaatkan Ajax adalah meningkatkan pengalaman browsing pengguna. Halaman yang memanfaatkan teknologi Ajax lebih berlaku sebagai aplikasi yang berdiri sendiri ketimbang sebagai sebuah halaman web. Mengklik suatu link pada halaman web berteknologi Ajax akan membuat halaman terbarui secara dinamis, sementara browser tidak perlu memanggil ulang seluruh halaman. Dengan demikian diperoleh peningkatan kecepatan respon.
Dengan meng-generate HTML secara lokal dalam browser, dan hanya melakukan panggilan JavaScript terhadap data di server, halaman web berbasis Ajax dapat dipanggil relatif cepat akibat kecilnya trafik antara server-client. Ini akan sangat bermanfaat pada halaman web dengan data berjumlah banyak dan harus ditampilkan dalam beberapa halaman. Keuntungan ini semakin terasa kalau kita mempertimbangkan penggunaan elemen-elemen HTML yang sering muncul berulangkali dalam satu halaman (seperti elemen TR dan TD untuk menampilkan tabel).
Penggunaan teknologi Ajax dapat mengurangi load halaman karena elemen-elemen tersebut dapat di-generate secara lokal. Sebagai bagian dari skema “dipanggil apabila dibutuhkan” (load on demand), beberapa aplikasi berbasis web menjalankan bagian dari “event handler” dan kemudian menjalankan fungsi-fungsi secara on the fly. Teknik ini secara signifikan mengurangi konsumsi bandwidth untuk aplikasi web yang memiliki alur logika dan fungsionalitas yang kompleks.
Namun demikian, penggunaan teknologi Ajax juga menyimpan sejumlah kelemahan. Diantaranya, halaman yang di-generate secara dinamis tidak teregister pada “history” browser sehingga penggunaan tombol back dan forward mungkin tidak akan bekerja semestinya. Para pengembang telah mengimplementasikan berbagai solusi terhadap permasalahan ini, diantaranya adalah penggunaan elemen IFRAME yang tersembunyi untuk meminta perubahan yang dapat dikenali oleh fungsi history pada browser yang kemudian dimanfaatkan oleh fungsi tombol back. Contoh penggunaan teknik ini bisa dilihat pada situs Google Maps, dimana perintah pencarian bekerja pada elemen IFRAME yang tak terlihat, namun hasil pencarian diarahkan pada elemen halaman yang terlihat. Sebagai catatan, Konsorsium World Wide Web (W3C) tidak memasukkan elemen IFRAME dalam standar XHTML 1.1 dan lebih merekomendasikan elemen OBJECT. Berikutnya adalah kesulitan yang dihadapi pengguna saat mem-bookmark halaman yang di-generate secara otomatis oleh Ajax. Solusinya juga sudah ada, salah satunya dengan memanfaatkan URL fragment identifier (bagian dari URL setelah tanda ‘#’) untuk menyimpan jejak sehingga pengguna dapat kembali ke status yang telah ditandai. Hal ini dimungkinkan karena kebanyakan browser mengijinkan JavaScript untuk memperbarui fragment identifier suatu URL secara dinamis, dengan demikian, aplikasi Ajax dapat menyimpan sebuah kondisi saat pengguna melakukan perubahan pada status aplikasi. Solusi ini juga dapat meningkatkan dukungan terhadap penggunaaan tombol back. Namun demikian, ini masih bukan solusi yang komplit. Isu lainnya menyangkut optimasi mesin pencari. Situs web yang memanfaatkan Ajax untuk memanggil data yang seharusnya diindeks oleh mesin pencari perlu bersikap hati-hati dengan menyediakan data yang ekuivalen pada URL-nya dalam format yang bisa dibaca oleh mesin pencari. Ini karena robot pada mesin pencari biasanya tidak menjalankan kode-kode JavaScript yang dibutuhkan dalam fungsionalitas Ajax. Ini bukan masalah yang spesifik untuk Ajax mengingat isu yang sama juga dialami situs yang menyediakan data dinamis yang membutuhkan page refresh oleh pengguna, misalnya penekanan tombol submit pada akhir pengisian formulir (secara umum, masalah ini kadang-kadang dirujuk sebagai hidden web).
Ketergantungan pada JavaScript juga menjadi isu tersendiri. JavaScript sering diimplementasikan secara berbeda di tiap browser. Karena itu, situs yang menggunakan JavaScript perlu diuji pada sejumlah browser yang berbeda untuk meyakinkan kompatibilitasnya. Tidak jarang kode JavaScript harus ditulis dua kali, satu bagian untuk browser IE dan bagian lain untuk Mozilla.
Masalah juga kerap muncul apabila pengguna tidak mengaktifkan dukungan JavaScript pada browsernya.
0 komentar:
Post a Comment