Tuesday, July 15

Aplikasi Laman Tunggal, Single Page Application

Ini adalah sebuah kalimat yang telah lama berlegar ketika seseorang itu merancang untuk membangun sebuah aplikasi mobil yang bersifat hybrid. Konsep ini rata-ratanya dipengaruhi oleh kecekapan Gmail, sebuah aplikasi email yang dibangun oleh Google. Bertitik tolak dari Gmail, Google mengembangkan konsep aplikasi laman tunggal ini kepada Google Docs, Drive, dan kini, Search. Anda tentu perasan dimana web-web tersebut begitu responsif terhadap setiap permintaan anda sewaktu anda klik pada pautan-pautan yang disediakan. Itulah kelebihan Konsep Aplikasi Laman Tunggal.

Tujuannya tak lain tak bukan adalah mempersembahkan sebuah aplikasi web yang menawarkan pengalaman penggunaannya hampir sama dengan penggunaan aplikasi desktop.

Teknik pembangunan yang digunakan juga amatlah berbeza sekiranya anda sudah terbiasa menyediakan berpuluh halaman untuk sesebuah web. Bagi pengaturcara PHP, anda sudah tentu terbiasa dengan teknik PHP yang dinamik, iaitu menyediakan satu template untuk header dan satu lagi untuk footer yang sifatnya umum bagi penggunaan yang meluas dalam projek web anda. Manakala bahagian dinamiknya adalah pada sidebar atau kandungan paparan utama. Kesimpulannya teknik ini memerlukan anda menjana kesemua template itu tadi di web server, dan membebankan server dan network untuk membawanya sebagai sebuah dokumen HTML kepada komputer client.

Ketika saya membangunkan sebuah aplikasi dashboard beberapa bulan yang lalu, saya berada dalam keadaan dilema ini. Waktu itu saya buntu kerana saya telah pun menghasilkan sebuah laman web yang perlu memaparkan beberapa carta, yang sepenuhnya diproses di server dan ia bersaiz agak besar kerana, terdapat berpuluh pustaka javascript dan CSS, serta data-data yang diperolehi daripada query pengkalan data. Tetapi carta-carta itu hanya akan terhasil ketika dokumen HTML itu lengkap muat sepenuhnya pada komputer client. Saya perlu paparkan sebuah carta yang interaktif. Interaktif beerti pengguna dapat berinteraksi dengan carta yang terpapar bagi memuaskan persoalan-persoalan analisisnya. Jadi disinilah dilema tersebut. 

Masalah ini saya atasi dengan penggunaan jQuery Ajax yang minimal pada mulanya. Tetapi lama kelamaan, ia jadi satu keperluan pula bagi menghasilkan sebuah aplikasi yang hanya ada sebuah halaman tetapi mempunyai berpuluh laman mini didalamnya.

Saya tertarik dengan konsep ini dan berjaya mengolah konsep ini menggunakan pustaka javascript iaitu BackboneJs. Pengalaman yang sudah hampir setahun telah banyak memberi kesan dalam memaknai kalimat tersebut. 

Ada yang pada saya baik untuk dipraktikkan konsep ini ketika mempertimbangkan keperluan-keperluan asas pengguna dan pada masa yang lain konsep ini perlu disederhanakan berikutan had-had atau halangan- halangan  tertentu terdapat pada kemampuan komputer client yang berbagai spesifikasinya.

Jikalau anda seorang yang mementingkan SEO Google, Yahoo dan Bing, konsep ini memerlukan anda untuk memfaktorkan semula kod-kod HTML, javascript dan CSS anda. Ini kerana, Search engine hanya berinteraksi dengan web server berbanding urusan yang terdapat dalam kod javascript anda. 

Apapun ini bukanlah sebuah konsep yang baru dalam dunia teknologi web. Mungkin saja ada yang telah mematangkan lagi konsep ini agar persembahan web tidak hambar di mata kasat pengguna smart phone. 

No comments: