12/16/2007

Update FlySoft dan Situs X, Dec16, 2007

Perubahan pada situs FlySoft reservation system pada teknik validasi yang digunakan. Ini mengatasi problem banyaknya field yang tak terhandle oleh inisiasi variabel dengan query string ataupun dengan javascript karena adanya exception pada beberapa field input. Perubahan pada Situs X pada teknik pemanggilan / query. Pembatasan Query Pembatasan query selain dengan paging juga dengan menghindari pemanggilan wildcard bintang untuk mewakili 'segala field' pada tabel yang dimaksud. Efek sampingnya adalah script yang lebih panjang karena harus menyebut sebanyak jumlah field yang diperlukan, tapi dengan pengurangan waktu pemanggilan halaman, meskipun tidak terlalu signifikan. Caching by Files Perubahan lain pada metode caching halaman per username. Caching diperlukan untuk menentukan mana konten yang sudah dibaca dan mana yang belum. Sebelumnya digunakan tabel caching yang akan bertambah isinya saat seorang user membuka halaman. Tetapi penambahan tidak akan dilakukan jika user tsb sudah pernah membukanya, melainkan hanya diupdate isinya saja. Secara matematis, perbandingan jumlah cache dengan satu isi konten adalah sebanyak jumlah username per isi konten. Ini yang ikut andil dalam memperberat halaman. Saat ekspor tabel terakhir, total file hasil ekspor cache adalah 1.67 MB. Dengan pengubahan metode caching yang meng-generate ke file, dihasilkan jumlah file sebanyak jumlah konten dikali jumlah user yang telah membuka, tetapi dengan size yang jauh lebih kecil (isinya hanya sebaris per file). Checking terakhir menemukan ukuran total file hanya berkisar 100-an kilobyte (satu berbanding lebih dari 10 kali lipat!). Script exporter dari tabel cache ke file telah dibuat, yang dengan sangat terpaksa harus di-run dua kali (ascending dan descending) disebabkan banyaknya isi yang melebihi waktu eksekusi script maksimal (setting pada Apache httpd). Cara validasi baru mulai digunakan. Cara ini mengecek input-input tanpa meninggalkan halaman form. Jadi, saat dilakukan validasi, halaman form tetap terbuka sehingga tak perlu memanggil ulang halaman form-nya dengan mempersiapkan nilai-nilai inisial -- untuk mengurangi pengetikan ulang -- tentunya. Cara ini mirip dengan ajax dalam hal menghindari terjadinya pemindahan halaman kecuali memang benar-benar urgent, dan dalam hal set errorMessage pada satu bidang textField (ajax biasa menggunakan non text-field, melainkan SPAN atau DIV). How It Works?

Secara teknis, proses yang dibutuhkan dalam validasi ini adalah :

  • Mendefinisikan iframe yang digunakan sebagai lokasi validasi. Nama variabel ditentukan. Visibility dibuang dengan mengganti ukurannya saja (1x1 piksel sudah cukup tersembunyi).
  • Mengganti target dari form menuju iframe tersembunyi, yang mana default seharusnya adalah ke halaman baru pada window yang sama atau _self.
  • Membuat text-field readonly pada halaman yang berisi form, yang mana text-field ini digunakan untuk menampilkan pesan respon. Pesan respon ini diset dari halaman validasi berdasarkan hasil pengecekan dan ditampilkan pada halaman yang berisi form. Text-field ini cukup diberi warna merah saja sebagai hilite dari pesan respon.
  • Disediakan satu fungsi lagi yang berfungsi me-redirect halaman form yang mana redirect ini dikendalikan dari iframe tersembunyi. Fungsi ini menggunakan JavaScript yang dihasilkan dari command output PHP.

No comments:

عبد العزيز

Create your badge