Menggunakan compression (pemadatan?)
Gzip bersama Codeigniter untuk menghantar data ke browser boleh mempercepatkan web kita. Namun kita perlu berhati-hati sekiranya kita banyak menggunakan Ajax dan JSON.
Untuk membolehkan data dihantar dengan compression, kita boleh menukar setting kita di application/config/config.php
.
$config['compress_output'] = TRUE;
Tapi ianya berfungsi bersama $this->load->view(). Segalanya akan rosak sekiranya kita menggunakan arahan echo
di dalam controller kita. Dan ini biasa kita lakukan untuk backend kepada proses Ajax kita, termasuklah untuk sebarang plugin jQuery seperti Databtable
, grid
, inline editing
dan lain-lain.
echo json_encode( $data ); // ini akan gagal dengan compress output
Jadi untuk menghantar maklumbalas kembali ke Javascript yang memanggil backend, kita mesti menggunakan $this->load->view()
. Kita boleh membina sebuah dengan nama ajax.php yang mengandungi kod seperti ini.
Dan di dalam controller, kita kod seperti ini.
function ajx_get_user(){ $this->load->model('user'); $user_id = $this->input->post('user_id'); $data['ajax'] = $this->user->get( $user_id ); $this->load->view('ajax',$data); }
2 replies on “Hati-hati Dengan Compress Output (GZip) Codeigniter dan Ajax”
Ops. Aku dah biasa guna echo dalam controller.
Kalau tak guna compress output, takde masalah. Tapi kalau nak guna, kena buat cleanup dulu pada semua yang berkaitan dengan Ajax.