Saya berada di awal / tengah proyek yang kami pilih untuk diterapkan menggunakan GWT. Adakah yang mengalami kesulitan besar dalam menggunakan GWT (dan GWT-EXT) yang tidak dapat diatasi? Bagaimana dengan perspektif kinerja?
Beberapa hal yang telah kita lihat / dengar sudah termasuk:
- Google tidak dapat mengindeks konten
- CSS dan gaya pada umumnya tampaknya agak serpihan
Mencari umpan balik tambahan tentang barang-barang ini juga. Terima kasih!
Jawaban:
Saya akan mulai dengan mengatakan bahwa saya penggemar berat GWT, tapi ya ada banyak jebakan, tetapi kebanyakan jika tidak semua yang bisa kami atasi:
Masalah: Waktu kompilasi yang lama, seiring proyek Anda tumbuh, demikian juga jumlah waktu yang dibutuhkan untuk mengkompilasinya. Saya pernah mendengar tentang laporan kompilasi 20 menit, tetapi rata-rata laporan saya sekitar 1 menit.
Solusi: Pisahkan kode Anda ke dalam modul terpisah, dan beri tahu semut untuk hanya membangunnya ketika diubah. Juga saat mengembangkan, Anda dapat mempercepat waktu kompilasi secara besar-besaran hanya dengan membangun untuk satu browser. Anda dapat melakukan ini dengan memasukkan ini ke file .gwt.xml Anda:
Di mana gecko1_8 adalah Firefox 2+, ie6 adalah IE, dll.
Masalah: Mode yang dihosting sangat lambat (setidaknya pada OS X) dan tidak cocok dengan perubahan 'hidup' yang Anda dapatkan ketika Anda mengedit hal-hal seperti JSP atau halaman Rails dan tekan refresh di browser Anda.
Larutan: Anda dapat memberikan memori lebih banyak kepada mode yang dihosting (biasanya saya dapatkan untuk 512M) tetapi masih lambat, saya telah menemukan begitu Anda mendapatkan cukup baik dengan GWT Anda berhenti menggunakan ini. Anda membuat banyak perubahan, kemudian kompilasi hanya untuk satu browser (umumnya kompilasi bernilai 20-an) dan kemudian tekan refresh di browser Anda.
Pembaruan: Dengan GWT 2.0+ ini tidak lagi menjadi masalah, karena Anda menggunakan 'Mode Pengembangan' yang baru. Ini pada dasarnya berarti Anda dapat menjalankan kode langsung di browser pilihan Anda, jadi tidak ada kehilangan kecepatan, plus Anda dapat firebug / memeriksanya, dll.
http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM
Masalah: Kode GWT adalah java, dan memiliki mentalitas yang berbeda untuk meletakkan halaman HTML, yang membuat mengambil desain HTML dan mengubahnya menjadi GWT lebih sulit
Solusi: Sekali lagi Anda terbiasa dengan hal ini, tetapi sayangnya mengubah desain HTML ke desain GWT selalu akan lebih lambat daripada melakukan sesuatu seperti mengubah desain HTML ke halaman JSP.
Masalah: GWT membutuhkan sedikit perhatian, dan belum menjadi arus utama. Berarti sebagian besar pengembang yang bergabung dengan tim Anda atau mengelola kode Anda harus mempelajarinya dari awal
Solusi: Masih harus dilihat apakah GWT akan lepas landas, tetapi jika Anda adalah perusahaan yang mengendalikan siapa yang Anda pekerjakan, maka Anda selalu dapat memilih orang yang mengetahui GWT atau ingin mempelajarinya.
Masalah: GWT adalah palu dibandingkan dengan sesuatu seperti jquery atau javascript biasa. Dibutuhkan lebih banyak pengaturan untuk mewujudkannya daripada hanya menyertakan file JS.
Solusi: Gunakan perpustakaan seperti jquery untuk tugas-tugas kecil dan sederhana yang cocok untuk itu. Gunakan GWT ketika Anda ingin membangun sesuatu yang benar-benar kompleks di AJAX, atau di mana Anda harus meneruskan data Anda bolak-balik melalui mekanisme RPC.
Masalah: Terkadang untuk mengisi halaman GWT Anda, Anda harus melakukan panggilan server saat halaman pertama kali dimuat. Mungkin menyebalkan bagi pengguna untuk duduk di sana dan menonton simbol pemuatan saat Anda mengambil data yang Anda butuhkan.
Solusi: Dalam hal halaman JSP, halaman Anda sudah dirender oleh server sebelum menjadi HTML, jadi Anda benar-benar dapat melakukan semua panggilan GWT saat itu, dan pra-memuatnya ke halaman, untuk pemuatan instan. Lihat di sini untuk detail:
Mempercepat Pemuatan Halaman dengan melakukan pra-serialisasi panggilan GWT Anda
Saya tidak pernah punya masalah CSS mendesain widget saya, di luar kotak, custom atau lainnya, jadi saya tidak tahu apa yang Anda maksud dengan menjadi perangkap?
Mengenai kinerja, saya selalu menemukan bahwa kode GWT yang dikompilasi cepat, dan panggilan AJAX hampir selalu lebih kecil daripada melakukan seluruh halaman refresh, tapi itu tidak benar-benar unik untuk GWT, meskipun paket RPC asli yang Anda dapatkan jika Anda menggunakan bagian belakang JAVA cukup ringkas.
sumber
Kami telah bekerja dengan gwt selama hampir 2 tahun. Kami telah belajar banyak pelajaran. Inilah yang kami pikirkan:
Jangan gunakan perpustakaan widget pihak ketiga terutama gwt-ext. Ini akan mematikan kinerja debugging, pengembangan, dan runtime Anda. Jika Anda memiliki pertanyaan tentang bagaimana ini terjadi, hubungi saya langsung.
Gunakan gwt untuk hanya mengisi bagian dinamis dari aplikasi Anda. Jadi jika Anda memiliki beberapa interaksi pengguna yang kompleks dengan banyak bidang. Namun, jangan gunakan panel yang menyertainya. Ambil halaman yang disediakan perancang stok yang ada. Buat area yang akan berisi kontrol untuk aplikasi Anda. Lampirkan kontrol ini ke halaman dalam onModuleLoad (). Dengan cara ini Anda dapat menggunakan halaman standar dari desainer Anda dan juga melakukan semua gaya di luar gwt.
Jangan membangun seluruh aplikasi sebagai satu halaman standar yang kemudian secara dinamis membangun semua bagian. Jika Anda melakukan apa yang saya sarankan pada item 2, ini tidak akan terjadi. Jika Anda membangun semuanya secara dinamis, Anda akan mematikan kinerja dan menghabiskan banyak memori untuk aplikasi menengah hingga besar. Juga, jika Anda melakukan apa yang saya sarankan, tombol kembali akan bekerja dengan baik, sehingga akan mengindeks mesin pencari dll.
Komentator lain juga punya beberapa saran bagus. Aturan praktis yang saya gunakan adalah membuat halaman seperti Anda melakukan halaman web standar. Kemudian mengukir potongan-potongan yang perlu dinamis. Gantilah dengan elemen yang memiliki id lalu gunakan
RootPanel.get( id ).add( widget )
untuk mengisi area tersebut.sumber
Perangkap yang kami temui:
Meskipun Anda bisa mendapatkan banyak jarak tempuh dari menggunakan sesuatu seperti GWT EXT, setiap kali Anda menggunakan veneer tipis semacam ini di atas pustaka JavaScript, Anda kehilangan kemampuan untuk debug. Lebih dari sekali saya telah memukul kepala saya di atas meja karena saya tidak dapat memeriksa (di dalam debugger IntelliJ saya) apa yang terjadi di kelas tabel GWT EXT ... Yang dapat Anda lihat hanyalah bahwa itu adalah JavaScriptObject. Ini membuatnya cukup sulit untuk mencari tahu apa yang salah ...
Tidak memiliki seseorang di tim Anda yang tahu CSS. Dari pengalaman saya, tidak masalah bahwa orang itu bukan ahli ... itu cukup bahwa ia memiliki pengetahuan kerja yang baik, dan tahu istilah yang tepat untuk google saat diperlukan.
Melakukan debugging di seluruh browser. Mengawasi Mode Hosted yang Keluar dari Proses [ 1 ] [ 2 ] [ 3 ], semoga hadir di GWT 1.6 ... Untuk saat ini, Anda hanya perlu mendapatkan hal-hal yang baik dengan mode yang dihosting, kemudian gunakan tombol "Kompilasi / Jelajahi" , tempat Anda dapat bermain dengan browser lain. Bagi saya, bekerja di Windows, ini berarti saya dapat melihat pekerjaan saya di FireFox, dan menggunakan FireBug untuk membantu mengubah dan membuat segalanya lebih baik.
IE6. Sungguh menakjubkan betapa berbedanya IE 6 akan membuat hal-hal. Saya telah mengambil pendekatan menerapkan gaya ke "viewport" terluar menurut browser sehingga saya dapat memiliki aturan CSS seperti:
Akhirnya, pastikan Anda menggunakan editor yang membantu Anda. Saya menggunakan IntelliJ - ada banyak kecerdasan GWT. Misalnya, jika saya mencoba menggunakan kelas yang tidak ditangani oleh emulasi JRE, itu membuat saya tahu; jika saya menentukan gaya untuk widget, dan saya belum menentukan gaya itu, kodenya akan sedikit merah berlekuk-lekuk ... Atau, ketika melihat CSS, itu akan memberi tahu saya ketika saya telah menentukan atribut yang saling bertentangan dalam sebuah aturan tunggal. (Saya belum mencobanya, tetapi saya mengerti bahwa versi 8 memiliki dukungan GWT yang lebih baik, seperti menjaga antarmuka dan implementasi RPC "lokal" dan "async" tersinkronisasi.)
sumber
GWT 2.0, yang seharusnya keluar dalam beberapa bulan mendatang, memecahkan banyak masalah yang dibahas.
GWT 2.0 Pratinjau Video di Google I / O
sumber
Bukan "tidak dapat diatasi" tetapi sedikit rasa sakit untuk sesuatu yang mendasar.
Penanganan tanggal:
GWT menggunakan yang usang
java.util.Date
yang dapat menyebabkan perilaku yang tidak terduga ketika berhadapan dengan tanggal di sisi klien.java.util.Calendar
tidak didukung oleh GWT. Info lebih lanjut di sini .Contoh masalah terkait:
sumber
java.util.Calendar
ke JavaScript. Anda juga dapat melihat kelas GWTCalendarUtil
, Bagaimana cara menggunakan java.util.Calendar di GWT dan Bagaimana melakukan operasi kalender di Java GWT? Bagaimana cara menambahkan hari ke Tanggal? . Cheers;)Saya akan menambahkan beberapa poin ke yang sudah disebutkan:
IMHO, GWT tidak memiliki kerangka kerja yang memiliki dukungan di luar kotak untuk semua masalah yang disebutkan di 'utas' ini.
sumber
Saya sedang mengerjakan proyek saat ini yang menggunakan EXT GWT (GXT) agar tidak menjadi bingung dengan GWT EXT. Ada perbedaan, EXT GWT adalah salah satu yang sebenarnya diproduksi oleh perusahaan yang menulis ExtJS perpustakaan javascript. GWT EXT adalah pembungkus GWT di sekitar perpustakaan ExtJS. GXT adalah GWT asli.
Bagaimanapun, GXT masih agak belum matang dan tidak memiliki komunitas yang solid yang saya rasa dimiliki oleh GWT EXT. Namun, masa depan adalah dengan GXT, karena itu asli GWT dan sebenarnya dikembangkan oleh perusahaan yang membuat ExtJS. GWT EXT agak lumpuh karena lisensi diubah pada perpustakaan ExtJS, sehingga memperlambat pengembangan GWT EXT.
Secara keseluruhan, saya pikir GWT / GXT adalah solusi yang baik untuk mengembangkan aplikasi web. Saya sebenarnya cukup menyukai mode yang di-host untuk pengembangan, itu membuat semuanya cepat dan mudah. Anda juga mendapatkan manfaat karena dapat men-debug kode Anda juga. Pengujian unit dengan JUnit juga cukup solid. Saya belum melihat kerangka pengujian unit JavaScript yang saya rasa cukup matang untuk menguji aplikasi perusahaan.
Untuk informasi lebih lanjut tentang GWT EXT: http://gwt-ext.com/
Untuk informasi lebih lanjut tentang EXT GWT (GXT): http://extjs.com/products/gxt/
sumber
Tidak ada jebakan besar yang belum bisa saya atasi dengan mudah. Gunakan mode yang di-host dengan berat. Saat Anda menggunakan GWT-ext, Anda hampir tidak perlu menyentuh CSS sendiri kecuali Anda ingin mengubah tampilan kotak.
Rekomendasi saya adalah menggunakan widget "asli" GWT di atas pustaka yang memiliki fitur yang hampir sama.
Pengindeksan ulang mesin pencari: ya situs tidak akan memiliki URL yang dapat dinavigasi secara normal (kecuali Anda hanya menambahkan widget ke elemen situs web biasa). Anda dapat melakukan fungsi back / forward history.
sumber
Saya menggunakan GWT dan GWT-ext bersama pada suatu proyek beberapa waktu lalu. Saya menemukan pengalaman yang cukup lancar seiring perkembangan web, tetapi saran saya adalah ini:
Jangan gabungkan widget asli GWT dengan widget EXT. Sangat membingungkan, karena biasanya namanya sama (GWT.Button atau GWText.Button?)
Satu hal yang terjadi pada saya yang benar-benar membuat kode lebih kompleks dari yang saya inginkan, adalah saya menginginkan Panel yang a) secara dinamis dapat diupdate b) cascadable
Panel asli GWT bersifat dinamis, panel Ext dapat di-cascadable. Larutan? GWT.VerticalPanel yang membungkus Panel GWTExt ... Kekacauan. :)
Tapi hei, itu berhasil. ;)
sumber
Saya kedua komentar dari ykagano, kerugian terbesar adalah kehilangan V di MVC. Meskipun Anda dapat memisahkan kelas ui sebenarnya dari sisa kode sisi klien Anda, Anda tidak dapat dengan mudah menggunakan halaman HTML yang dihasilkan oleh desainer grafis / web. Ini berarti Anda memerlukan pengembang untuk menerjemahkan HTML ke java.
Dapatkan editor ui wwywyg, ini akan menghemat banyak waktu. Saya menggunakan GWTDesigner.
Sisi positif terbesar dari GWT adalah bisa melupakan masalah lintas browser. Ini bukan 100% tetapi menghilangkan hampir semua rasa sakit itu. Dikombinasikan dengan manfaat dari debugging mode yang dihosting (sebagai lawan Firebug yang sangat baik tetapi tidak sama dengan debugger java) itu memberikan pengembang keuntungan besar dalam menghasilkan aplikasi ajax yang kompleks.
Oh dan itu cepat saat runtime, terutama jika Anda menggunakan filter gzip.
sumber
Agak di luar topik, tetapi saluran #gwt di irc sangat membantu, jika Anda memiliki masalah terus-menerus.
sumber
GWT cukup mudah dan intuitif.
Terutama dengan dirilisnya UIBinder untuk memungkinkan widget GWT diletakkan dalam XML dan kemudian diberi kode-belakang di Jawa.
Jadi jika Anda telah menggunakan alat desain Ajax atau Flash lainnya, atau Silverlight, dll, GWT sangat mudah dipelajari.
Rintangan utama, jika bukan jebakan, adalah GWT RPC. Alasan utama Anda ingin menggunakan GWT adalah karena GWT async RPC. Kalau tidak, mengapa tidak hanya mengandalkan css untuk memformat halaman Anda?
GWT RPC adalah elemen yang memungkinkan server Anda untuk me-refresh data di server Anda tanpa harus me-refresh halaman. Ini merupakan persyaratan mutlak untuk laman seperti pemantauan kinerja stok (atau utang nasional dan publik AS saat ini atau jumlah bayi yang belum lahir yang dibatalkan di seluruh dunia pada detik).
GWT RPC membutuhkan beberapa upaya untuk memahami tetapi diberikan beberapa jam, itu akan menjadi jelas.
Di atas itu, setelah berupaya mempelajari GWT RPC, Anda akhirnya menemukan bahwa Anda tidak dapat menggunakan JSP sebagai komponen layanan untuk RPC, kecuali ... Saya memiliki seri 8 bagian (menurut saya) di blog saya tentang cara menggunakan JSP sebagai servicer GWT RPC. Namun, karena Anda tidak meminta jawaban tetapi hanya masalah, saya akan berhenti mengiklankan blog saya.
Begitu. Saya sangat percaya bahwa penghalang / perangkap terburuk untuk menggunakan GWT adalah mencari tahu cara menggunakan GWT async RPC dengan benar dan cara mengaktifkannya untuk menggunakan servicers JSP.
sumber
Kami mengalami kesulitan untuk menggabungkan basis kode GWT kami dengan templat web HTML yang kami peroleh dari perancang web (laman HTML statis dengan id khusus yang ingin kami kelola oleh GWT). Setidaknya ketika kami menggunakannya, kami tidak bisa membuat GWT terintegrasi dengan bagian-bagian situs web kami yang tidak dikodekan dalam GWT. Kami berhasil pada akhirnya, tetapi itu adalah retasan besar.
sumber
Tetapi untuk proyek Javascript besar itu pilihan terbaik
sumber
GWT 2.4 telah memperbaiki banyak masalah yang disebutkan di atas dan perpustakaan widget yang hebat baru saja keluar dari Beta (Ext GWT 3.0.4 alias GXT), yang ditulis sepenuhnya dalam GWT, bukan pembungkus lib JS.
Rasa sakit yang tersisa:
sumber
Mengenai GWT 2.4, Gunakan Firefox saat men-debug GWT, itu jauh lebih cepat daripada menggunakan chrome. Dan jika Anda hanya akan menggunakan firefox, pertimbangkan untuk meletakkan baris ini di file project.gwt.xml Anda
Juga, Jika Anda menggunakan gerhana, tambahkan argumen berikut di bawah ini -> Argumen VM:
-Xmx512m -XX: MaxPermSize = 1024m -XX: PermSize = 1024m
Anda dapat membagi server dan klien Anda, dan menggunakan argumen berikut di bawah ini -> Argumen program: -codeServerPort 9997 -startupUrl http: // server Anda / proyek -noserver
Juga, untuk mencegah penyegaran server Anda pada setiap perubahan, gunakan JRebel http://zeroturnaround.com/blog/how-to-rock-out-with-jrebel-and-google-web-toolkit-gwt/ Dan inilah demo langsung http://www.youtube.com/watch?feature=player_embedded&v=4JGGFCzspaY
sumber
Salah satu perangkap utama adalah bahwa kadang-kadang Anda perlu secara eksplisit menetapkan id untuk apa yang akhirnya menjadi elemen HTML untuk dapat menggunakan gaya CSS tertentu. Sebagai contoh: GWT TabPanel hanya akan melakukan: arahkan kursor ke tabBarItems ketika tabBar dari tabPanel telah diberi id dan Anda menentukan: hover pada elementId itu.
Saya menulis tentang beberapa kelemahan lain dari GWT di tempat lain, tetapi mereka sudah dicakup oleh jawaban rustyshelfs :).
sumber
Saya telah melakukan banyak pekerjaan di GWT baru-baru ini, dan inilah yang harus saya katakan:
Saya tidak tahu banyak tentang GWT-EXT, tetapi saya juga yakin bahwa tidak perlu menyertakan perpustakaan pihak ketiga.
Semoga sukses dengan keputusan Anda :)
sumber
GWT melakukan Browser Sniffing alih-alih Deteksi Fitur dan aplikasi Anda tidak akan berfungsi pada beberapa browser (khusus yang baru)
Berikut ini beberapa referensi masalah:
Berikut adalah beberapa referensi untuk Deteksi Fitur:
Diambil dari Perbandingan kerangka kerja JavaScript - Wikipedia
sumber
Tim GWT membuat banyak perbaikan besar untuk tahun lalu merilis GWT 2.7. Salah satu kelemahan utama GWT adalah kompilasi membutuhkan banyak waktu di GWT 2.6 dan di bawahnya. Ini sekarang hilang GWT belum kompilasi tambahan yang super cepat dan hanya mengkompilasi perubahan.
GWT 2.7 sekarang memiliki ( Sumber ):
sumber
Cara terbaik untuk mendapatkan fakta yang andal adalah dari survei gwt . Salah satu masalah terbesar dengan GWT adalah waktu kompilasi yang lama. Untungnya, itu berkembang sangat cepat sehingga tidak akan menjadi masalah yang signifikan dalam waktu dekat. Perangkap lain adalah bahwa GWT secara dramatis lebih rumit karena Java adalah bahasa yang lebih rumit yang menolak coders buruk di setiap langkah. Selain itu, kompilasi menambahkan lapisan. Sebagai contoh, js interop membutuhkan sedikit boilerplate. Masalah mendasarnya adalah bahwa GWT tidak dirancang untuk menjadi sederhana. Ini dirancang dari bawah ke atas untuk aplikasi web yang sangat rumit dan seluruh komunitas secara konsisten memprioritaskan, kinerja, kualitas kode, arsitektur, dan sebagainya daripada pengkodean yang mudah.
Ingatlah bahwa Anda dapat menggunakan js di GWT kapan saja jadi jika Anda kesulitan dengan GWT pertimbangkan untuk menggunakan js. Pada akhirnya GWT adalah js sehingga Anda dapat melakukan apa saja di GWT yang dapat Anda lakukan di js. Bahkan, sebagian besar proyek GWT menggunakan js. Masalahnya adalah bahwa GWT secara drastis lebih rumit. Namun demikian, terkadang sebanding dengan kompleksitas ekstra.
Perlu dicatat bahwa GWT 3.0 akan membawa perbaikan besar-besaran.
sumber
Menggunakan kembali objek layanan RPC.
Ini menyebabkan kondisi balapan dengan gejala yang terlihat seperti menggantung aplikasi.
sumber
Perangkap saya berlari ke 1. Perilaku yang berbeda dalam mode superdev. Misalnya Someclass.class.getName () berfungsi dengan sangat baik dalam mode Superdev dan mengembalikan nama kelas yang memenuhi syarat. Dalam mode produktif ini tidak berfungsi.
sumber
GWT adalah mahakarya teknologi. Ini menyatukan klien dan pemrograman server menjadikannya satu aplikasi yang koheren - cara perangkat lunak ditulis sebelum "layering", dan cara itu harus ditulis. Ini menghilangkan berbagai keahlian, miskomunikasi antara anggota tim, dan umumnya seluruh fase Desain Web: baik artistik dan pemrograman. Dan itu adalah yang terdekat dengan ponsel Anda misalnya pengembangan Android. Sebenarnya GWT dirancang untuk menghasilkan UI asli yang berbeda, bukan hanya HTML. Meskipun itu membutuhkan disiplin yang sangat besar untuk memastikan pemisahan seperti itu - untuk menjaga presentasi lapisan dalam Anda - agnostik.
Kesalahan pertama yang harus Anda hindari, yang membutuhkan waktu empat tahun untuk saya sadari, adalah menggunakan ekstensi pihak ketiga seperti EXT-GWT alias GXT dan SmartGWT. Sangat menggoda untuk mulai menggunakan widget desktopish cantik mereka daripada berinvestasi dalam gaya Anda sendiri, tetapi saya tidak bisa mengatakan berapa banyak masalah yang saya miliki dengan SmartGWT sampai akhirnya saya bosan. Singkatnya itu membekukan fitur inti GWT yang ditetapkan pada tingkat (cukup usang) tertentu dan kemudian membangun di atasnya. Juga perlu diingat, tampilan dan nuansa desktop yang dipahat terlihat konyol saat ini, belum lagi kinerja yang lamban, berton-ton bug, dan fitur kompatibilitas - terutama pada perangkat mobile. Anda ingin tetap sedekat mungkin dengan kontrol peramban asli, sedapat mungkin yaitu dropdown yang diberikan sebagai elemen <select> asli, bukan beberapa kontrol yang dicat khusus.
Berkat tren seluler, seluruh UX menjadi lebih sederhana dan lebih datar, sehingga Anda tidak perlu berbuat banyak untuk merancang aplikasi yang tampak tajam. Meskipun jika Anda ingin tampilan "3D", ada juga gradien. CSS3 membuat segalanya mudah, dan GWT membungkusnya dengan cara berorientasi objek yang elegan tidak seperti CSS mentah. Jadi jangan berkecil hati dengan melihat kontrol barebone yang agak jelek di GWT Showcase. Tim GWT sengaja tidak menawarkan gaya apa pun, karena itu adalah pekerjaan pengembang.
Sisanya cukup banyak pemrograman browser konvensional di Jawa sangat diketik dengan API ringkas yang indah. Tapi tentu saja jangan pernah lupa kode Anda berjalan di dalam browser, jadi semua panggilan tidak sinkron, misalnya Anda tidak dapat memanggil metode GWT-RPC dalam satu lingkaran (untuk mengisi beberapa daftar), tetapi perlu secara rekursif memutarnya jika Anda datang ke ini situasi.
Ada beberapa "anti-pola" yang diproklamirkan sendiri seperti tidak menggunakan GWT-RPC. Sejauh ini sudah baik bagi saya: selama 10 tahun. Kesederhanaan adalah kuncinya. Saya tidak akan berpikir sedetik pun untuk mengorbankan beberapa kinerja marjinal untuk keanggunan kode dan pemeliharaan. selain itu ini bukan tempat kemacetan Anda - dalam database. Tentu saja keberatan berapa banyak data yang Anda kirim ke klien.
Dan jika Anda tidak dapat menemukan atau menata gadget yang ada - baca kumpulan elemen HTML5 yang kaya, Anda selalu dapat membungkus yang pihak ketiga. Saya melakukannya dengan FullCalendar jQuery yang populer. Bukan ilmu roket sama sekali. Segala sesuatu yang lain seperti Google Maps dan Google Charts memiliki pembungkus GWT semi resmi.
GWT sempurna. Satu-satunya alasan itu tidak mendapatkan cukup cinta adalah karena pengadopsi Internet awal yang masih mempengaruhi industri tidak datang dari Ilmu Komputer dan bahasa berorientasi objek untuk menghargai mereka. Mereka memiliki latar belakang artistik (Photoshop / WordPress) atau jaringan (Perl / Python).
sumber