Rumah  >  Artikel  >  Java  >  Bagaimana untuk Membina PWA dengan Java dan Spring Boot: Amalan Terbaik untuk Kefungsian Luar Talian?

Bagaimana untuk Membina PWA dengan Java dan Spring Boot: Amalan Terbaik untuk Kefungsian Luar Talian?

PHPz
PHPzasal
2024-08-14 10:33:06894semak imbas

How to Build a PWA with Java and Spring Boot: Best Practices for Offline Functionality?

Saya sedang mengusahakan projek pengurusan buruh di mana salah satu keperluan utama ialah memastikan ciri tertentu (seperti clock out) boleh diakses walaupun peranti pengguna berada di luar talian buat sementara waktu. Walaupun ini adalah kes yang jarang berlaku, saya ingin membuktikan aplikasi pada masa hadapan dengan mendayakan fungsi luar talian tambahan mengikut keperluan.

Kes Penggunaan:

  • Belakang: Java dengan Spring Boot
  • Hadapan: Thymeleaf dengan HTMX (atau berkemungkinan Aliran Vaadin)
  • Keperluan Utama: Keupayaan untuk cache permintaan POST dan menavigasi ke halaman cache semasa di luar talian.

Teknologi yang Saya Pertimbangkan:

  1. But Musim Bunga dengan Thymeleaf dan HTMX: Tindanan pilihan saya. Saya suka membina menggunakan TDD, dan gabungan ini selaras dengan pengalaman saya. Saya telah membina projek demo kecil menggunakan service-worker.js untuk menyimpan cache dan membenci permintaan POST. Saya tidak pasti sama ada ini adalah pilihan terbaik untuk terus menambah fungsi luar talian pada masa hadapan.

  2. Vaadin Flow: Saya tertarik dengan Vaadin Flow kerana tumpuannya yang kuat dalam membina aplikasi perniagaan sepenuhnya di Java. Walau bagaimanapun, saya bimbang tentang keupayaannya untuk menyokong fungsi luar talian kerana ia mengemas kini paparan secara dinamik. Daripada apa yang saya faham, ini akan menjadikannya mustahil untuk hanya cache seluruh halaman untuk tontonan luar talian. Saya sedar tentang Hilla, tetapi kemudian saya perlu mencipta semua pandangan dalam Typescript dan perkara semacam itu menggagalkan tujuan menggunakan Vaadin, pada pendapat saya.

  3. PWA Starter: Saya melihat ke PWA Starter, tetapi nampaknya menumpukan pada mencipta apl satu halaman (SPA) dalam bahasa seperti Angular atau React, yang tidak sesuai dengan pilihan saya kekal dalam ekosistem Spring Boot.

  4. Quarkus atau JHipster: Saya juga mempertimbangkan Quarkus dan JHipster, tetapi JHipster biasanya menggunakan Angular atau Vue untuk bahagian hadapan, nampaknya, yang saya tidak begitu berminat. Saya sedang mencari untuk sesuatu yang lebih dekat dengan pendekatan timbunan penuh Java. Quarkus nampaknya menumpukan pada perkhidmatan mikro?

Soalan:

  1. Apakah amalan atau rangka kerja/alat terbaik untuk menyepadukan keupayaan PWA, terutamanya fungsi luar talian, dalam aplikasi Java dan Spring Boot? Mungkin ada alat yang membantu dengan pekerja perkhidmatan, contohnya?
  2. Adakah terdapat cara untuk menggunakan Vaadin Flow secara berkesan dengan caching luar talian, atau patutkah saya menggunakan Thymeleaf dan HTMX untuk kawalan yang lebih baik ke atas pekerja perkhidmatan?
  3. Adakah terdapat sebarang sumber, perpustakaan atau corak khusus yang anda cadangkan untuk melaksanakan pekerja perkhidmatan dalam persediaan Spring Boot dan Thymeleaf?

Saya sedang mencari nasihat tentang cara untuk mendekati perkara ini, mempertimbangkan keutamaan saya untuk kekal dalam ekosistem Java dan mengelak daripada menambah teknologi hadapan baharu yang penting. Saya pasti terdapat banyak soalan yang belum saya fikirkan. Sebarang cerapan atau cadangan amat dihargai!

Semakan perkara yang saya telah cuba

  • Saya membina demo dengan menulis pekerja perkhidmatan saya sendiri. Ia baik, tetapi saya tidak pasti sejauh mana saya boleh melakukannya.
  • Saya mencuba Vaadin Flow, tetapi kemudian menyedari bahawa sebarang fungsi luar talian memerlukan Typescript dan Hilla.
  • Saya mula melihat FlutterFlow, tetapi nampaknya keputusan reka bentuk yang besar untuk dibuat untuk kes kelebihan peranti pengguna ini berada di luar talian.

Atas ialah kandungan terperinci Bagaimana untuk Membina PWA dengan Java dan Spring Boot: Amalan Terbaik untuk Kefungsian Luar Talian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn