Page 112 - Framework Codeigniter 2
P. 112
www.koder.web.id – Kumpulan tutorial komputer
Chapter 12
Kasus 8. CodeIgniter dan Ajax
AJAX yang dimaksud disini bukanlah nama club sepakbola yang berasal dari Amsterdam, Anda
atau pun nama pahlawan dalam sejarah perang Trojan, tetapi AJAX di sini adalah singkatan dari
Asynchronous JavaScript and XML. Pada intinya ajax itu merupakan gabungan beberapa
teknologi yang bertujuan untuk menghindari page reload. Dengan menghindari page reload, kita
dapat menghindari paradigma click-and-wait serta memberikan sebuah fitur yang cukup kompleks
pada website seperti validasi data secara realtime, drag n drop dan fitur-fitur lain yang belum
dimiliki web biasa.
Dengan AJAX, suatu aplikasi web dapat mengambil data kemudian diolah di client melalui
request asynchronous HTTP yang diinisialisasi oleh Javascript, sehingga dapat mengupdate
bagian-bagian tertentu dari web tanpa harus memanggil keseluruhan halaman web. Request ini
dapat dieksekusi dalam beberapa cara dan beberapa format transmisi data. Dikombinasikannya
cara pengambilan data remote dengan interaktivitas dari Document Object Model (DOM) telah
menghasilkan generasi terbaru dari aplikasi web yang menggebrak aturan-aturan tradisional
tentang apa yang dapat terjadi di dalam web. Keuntungan dari aplikasi web berbasis AJAX adalah
memungkinkan untuk membuat website dan aplikasi web yang lebih baik dan lebih responsif.
Sehingga meningkatkan kemudahan pengguna.
Codeignter sebenarnya tidak terpengaruh dengan teknik ajax ini karena ajax bekerja di sisi clinet
sedangkan CI bekerja disisi server. Yang perlu dipersiapkan hanya di sisi template dan view.
Untuk bagian library template kita melakukan perubahan dengan menambahkan pengecekan
apakah sebuah request tersebut merupakan ajax request apa bukan.
application/libraries/template.php
1. <?php
2. class Template {
3. protected $_ci;
4.
5. function __construct()
6. {
7. $this->_ci =&get_instance();
8. }
9.
10. function display($template,$data=null)
11. {
12. if(!$this->is_ajax())
13. {
14. $data['_content']=$this->_ci->load->view($template,
15. $data, true);
16. $data['_header']=$this->_ci->load->view('template/header',
17. $data, true);
107