Dunia pembangunan web menghabiskan sebahagian besar dekad untuk meyakinkan dirinya bahawa pelayar (browser) sepatutnya melakukan kerja berat. Kita bermula dengan dokumen dan borang, kemudian secara beransur-ansur memindahkan setiap operasi yang boleh dibayangkan ke bahagian klien. Penghalaan (routing), pengurusan keadaan (state management), pengambilan data (data fetching), logik rendering, malah orkestrasi pertanyaan pangkalan data melalui GraphQL — semuanya berpindah ke dalam bundle JavaScript yang menjadi semakin berat dengan setiap keluaran. Rangka kerja (frameworks) semakin banyak, saluran binaan (build pipelines) semakin kompleks, dan apa yang bermula sebagai cara untuk menjadikan aplikasi terasa pantas bertukar menjadi seni bina di mana satu halaman tidak dapat memaparkan satu piksel bermakna pun sehingga megabait kod dimuat turun, dianalisis (parsed), dan dilaksanakan.

Peralihan itu menyelesaikan masalah sebenar. Halaman yang disunting oleh pelayan (server-rendered) dengan sedikit jQuery bergelut untuk memberikan peralihan lancar seperti aplikasi yang diharapkan oleh pengguna. Aplikasi Halaman Tunggal (Single Page Applications) memberi kita navigasi segera, keadaan yang kekal (persistent state), dan interaksi yang kaya. Namun, kosnya semakin bertambah. Pasukan kini menguruskan stor keadaan (state stores) bahagian klien yang kompleks, mengendalikan bundle JavaScript yang besar, menyelenggara lapisan penyinkronan data yang rumit, dan menyahpepijat (debug) saluran binaan yang kadangkala terasa seperti pekerjaan sepenuh masa mereka sendiri. Kita menukar satu set masalah dengan set yang lain, dan ramai pembangun kini bertanya sama ada setiap aplikasi perlu membayar "cukai" tersebut.

Dua perkembangan menjadikan soalan itu lebih mudah dijawab.

HTMX dan Kepulangan Hypermedia

Yang pertama ialah HTMX. Pada zahirnya, ia kelihatan seperti perpustakaan kecil, tetapi implikasi seni binanya adalah besar. HTMX menganggap HTML sebagai format asli untuk logik aplikasi dan bukannya menganggapnya sebagai cangkerang statik yang mesti diisi oleh JavaScript.

Berikut adalah apa yang berubah dalam praktis. Secara tradisinya, apabila pengguna mengklik butang untuk memuatkan lebih banyak komen, bahagian hadapan (frontend) akan menghantar permintaan fetch, menerima muatan (payload) JSON, menormalkannya ke dalam stor bahagian klien, menjalankannya melalui templat komponen, membandingkan (diff) virtual DOM, dan akhirnya menampal (patch) halaman tersebut. HTMX memendekkan rantaian tersebut. Butang itu sendiri mengandungi atribut yang memberitahu pelayar ke mana hendak menghantar permintaan dan elemen halaman mana yang perlu diganti. Pelayan mengembalikan fragmen HTML — hanya komen baharu, dibalut dalam sebuah div. Pelayar akan menukarnya masuk. Tiada JSON, tiada pokok keadaan (state tree) frontend, tiada algoritma pendamaian (reconciliation algorithm), dan tiada JavaScript imperatif untuk memastikan UI selaras dengan pelayan.

Ini bukan penolakan terhadap pembangunan moden. Ia adalah penolakan terhadap abstraksi yang tidak perlu. HTMX membuktikan bahawa hypermedia, gaya seni bina yang memacu web awal, masih boleh menyokong antara muka yang canggih apabila dipadankan dengan ergonomik moden. Sebarang elemen boleh mengeluarkan permintaan, bukan sekadar borang dan pautan. Sebarang acara (event) boleh mencetuskan kemas kini. Pelayan kekal sebagai sumber kebenaran (source of truth) untuk kedua-dua data dan persembahan.

Kemas Kini Separa Deklaratif Chrome

Peralihan kedua adalah lebih baharu dan wujud di dalam pelayar itu sendiri. Chrome memperkenalkan Declarative Partial Updates, atau DPU. Ciri ini membolehkan pelayar melakukan penstriman HTML dan memasukkannya secara terus ke dalam bahagian halaman yang disasarkan sebaik sahaja bait (bytes) tiba.

Sebelum DPU, jika anda ingin menstrim data langsung ke dalam halaman web, anda biasanya akan menggunakan WebSockets, Server-Sent Events, atau long-polling yang dipadankan dengan manipulasi DOM secara manual. Bahagian hadapan perlu menguruskan sambungan, menganalisis muatan, dan memutuskan dengan tepat bagaimana dan di mana untuk menyuntik markup. DPU mengubah persamaan tersebut dengan menjadikan proses itu bersifat deklaratif. Pembangun menentukan bekas (container) sasaran, dan pelayar mengendalikan selebihnya: menerima aliran, menganalisis fragmen, dan meletakkannya tepat di tempat yang sepatutnya, malah sebelum respons penuh ditutup.

Bayangkan papan pemuka (dashboard) pemantauan yang menunjukkan log pelayan atau barisan sokongan yang dikemas kini dalam masa nyata. Dengan DPU, bahagian belakang (backend) menghantar cebisan HTML biasa semasa ia dijana. Pelayar menstrimnya ke dalam badan jadual atau bekas suapan tanpa satu baris pun logik penstriman bahagian klien. Pemasangan berlaku secara asli (natively).

Model Utama-Pelayan (Server-First Model)

Gabungkan HTMX dan DPU, dan anda akan mendapat seni bina yang koheren di mana pelayan memiliki keadaan (state) dan menjana UI, manakala pelayar mengendalikan paparan dan input pengguna. Rangka kerja backend seperti Rails, Laravel, Django, Go templates, atau ASP.NET menjadi lapisan antara muka utama semula. Frontend bukanlah aplikasi berasingan yang menggunakan API. Ia adalah antara muka hypermedia yang dihasilkan oleh pelayan.

Model ini sesuai untuk segmen perisian yang sangat luas secara mengejutkan. Pertimbangkan aplikasi SaaS tipikal. Ia adalah papan pemuka dengan jadual yang boleh disusun. Ia adalah panel admin dengan borang dan penapis. Ia adalah alatan dalaman yang memindahkan rekod dari satu keadaan ke keadaan yang lain. Ia adalah aliran kerja CRUD yang memaparkan senarai, menunjukkan paparan terperinci, dan membenarkan pengguna menyunting medan. Ia juga merangkumi antara muka AI di mana model bahasa menghantar aliran token kepada pengguna, dan setiap token atau perenggan boleh dibungkus dalam HTML dan ditambah ke dalam rantaian perbualan. Bagi semua ini, klien JavaScript yang berat sering kali merupakan sesuatu yang berlebihan.

Manfaatnya adalah serta-merta dan praktikal. Pemuatan halaman awal adalah lebih pantas kerana paparan bermakna pertama tiba sebagai HTML, bukan selepas kitaran hidrasi selesai. Saiz muatan JavaScript mengecil kerana tiada virtual DOM, tiada penghala sisi klien, dan tiada perpustakaan pengurusan keadaan untuk dihantar. Enjin carian melihat kandungan lengkap tanpa perlu melaksanakan bundle, jadi SEO berfungsi secara lalai. Kerumitan berkurangan kerana satu kod asas mengendalikan penghalaan, logik perniagaan, dan render. Proses penyahpepijatan menjadi lebih mudah. Apabila sesuatu kelihatan salah, anda boleh memeriksa tab Network dan melihat dengan tepat HTML yang dihantar oleh pelayan. Tiada objek keadaan sisi klien yang kabur untuk dianalisis secara terbalik.

Bagaimana pula dengan React dan Klien Berat?

Semua ini tidak bermakna React sudah mati, atau bahawa SPA adalah satu kesilapan. Aplikasi kompleks bertaraf editor masih memerlukan klien yang berat. Figma menjalankan enjin C++ yang dikompilasi ke WebAssembly di dalam pelayar kerana perjalanan pergi-balik ke pelayan akan menyebabkan proses melukis menjadi mustahil. Canva memanipulasi kanvas pada enam puluh bingkai sesaat dengan geometri sisi klien. Google Docs menggunakan operational transforms untuk menyelesaikan konflik penyuntingan dalam milisaat. Alatan ini pada dasarnya adalah aplikasi desktop yang dihantar melalui tab pelayar. Ia tidak akan kembali kepada borang yang dirender oleh pelayan.

Tetapi kebanyakan perisian bukanlah Figma. Kebanyakan perisian bukanlah editor grafik masa nyata. Kebanyakan perisian adalah skrin pelaporan, panel konfigurasi, aliran tempahan, atau borang pengurusan kandungan. Bagi kelompok aplikasi yang luas itu, menghantar beratus-ratus kilobait rangka kerja JavaScript hanya untuk menukar modal atau mengambil senarai rekod tidak pernah masuk akal. Ekonomi timbunan teknologi sedang beralih. Kita sedang menemui semula bahawa pelayan boleh berada dekat dengan pengguna hasil daripada edge, dan pelayar itu sendiri telah berkembang cukup berupaya untuk mengemas kini fragmen tanpa memerlukan rangka kerja sebagai perantara bagi setiap bait.

Pendulum Menemui Keseimbangan

Lengkok seni bina web sedang berayun kembali ke arah kesederhanaan, tetapi ia bukanlah kepulangan naif ke era sembilan puluhan. Pelayar menjadi semakin pintar. Ciri-ciri seperti DPU tidak menggantikan kebijaksanaan pembangun; ia menyerap corak yang dahulunya kita laksanakan secara manual — penstriman, kemas kini separa, penyisipan DOM bersasaran — ke dalam platform itu sendiri. HTMX memberi kita kosa kata untuk menyatakan tingkah laku tersebut tanpa membina semula sistem operasi mini di bahagian hadapan.

Anda tidak lagi perlu memilih antara seni bina yang ringkas dan pengalaman pengguna yang responsif. Anda boleh memiliki kedua-duanya. Pelayan boleh menggerakkan antara muka, pelayar boleh menyusunnya, dan JavaScript yang anda tulis boleh menumpukan kepada interaktiviti sebenar dan bukannya urusan teknikal asas.

Untuk generasi papan pemuka, alatan admin, dan antara muka berkuasa AI yang seterusnya, klien yang paling bijak mungkin adalah klien yang melakukan lebih sedikit kerja.