Kerangka web Pusa yang mentransfer logika front-end JavaScript ke sisi server

Kerangka web Pusa telah diterbitkan dengan implementasi konsep yang mentransfer logika front-end, dieksekusi di browser menggunakan JavaScript, ke sisi back-end - pengelolaan browser dan elemen DOM, serta logika bisnis dilakukan di bagian belakang. Kode JavaScript yang dieksekusi di sisi browser diganti dengan lapisan universal yang memanggil penangan yang terletak di sisi backend. Tidak perlu mengembangkan menggunakan JavaScript untuk front end. Implementasi referensi Pusa ditulis dalam PHP dan dilisensikan di bawah GPLv3. Selain PHP, teknologi ini dapat diimplementasikan dalam bahasa lain, termasuk JavaScript/Node.js, Java, Python, Go, dan Ruby.

Pusa mendefinisikan protokol pertukaran berdasarkan serangkaian perintah minimalis. Saat halaman dimuat, browser memuat konten DOM yang mendasarinya dan inti JavaScript Pusa-Front. Pusa-Front mengirimkan peristiwa browser (seperti klik, blur, fokus, dan penekanan tombol) dan parameter permintaan (elemen yang menyebabkan peristiwa, atributnya, URL, dll.) ke pengendali server Pusa-Back menggunakan permintaan Ajax. Berdasarkan data yang diterima, Pusa-Back menentukan pengontrol, mengeksekusi payload dan menghasilkan serangkaian perintah respons. Setelah menerima respons permintaan, Pusa-Front menjalankan perintah, mengubah konten DOM dan lingkungan browser.

Keadaan frontend dihasilkan tetapi tidak dikontrol oleh backend, yang membuat pengembangan untuk Pusa mirip dengan kode untuk video card atau Canvas, yang mana hasil eksekusinya tidak dikontrol oleh pengembang. Untuk membuat aplikasi interaktif berdasarkan Canvas dan onmousemove, dimungkinkan untuk mengunduh dan menggunakan skrip JavaScript tambahan di sisi klien. Di antara kelemahan metode ini juga terdapat perpindahan sebagian beban dari frontend ke backend dan peningkatan frekuensi pertukaran data dengan server.

Keuntungannya adalah: menghilangkan kebutuhan akan partisipasi pengembang front-end JavaScript, kode klien yang stabil dan ringkas (11kb), tidak dapat diaksesnya kode utama dari front-end, tidak memerlukan serialisasi REST dan alat seperti gRPC, menghilangkan masalah koordinasi perutean permintaan antara front-end dan back-end.

Sumber: opennet.ru

Tambah komentar