Categories
Programming

Hati-hati Dengan Compress Output (GZip) Codeigniter dan Ajax

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”

Kalau tak guna compress output, takde masalah. Tapi kalau nak guna, kena buat cleanup dulu pada semua yang berkaitan dengan Ajax.

Leave a Reply