อะไรคือข้อได้เปรียบที่พิสูจน์แล้วของเครื่องมือเช่น GWT บนเฟรมเวิร์ค JavaScript ที่บริสุทธิ์?


11

GWT เป็นซอฟต์แวร์สแต็กที่แปลโค้ด Java และชุดย่อยของไลบรารีคลาสของ Java Runtime เป็นโค้ด JavaScript

เมื่อเปรียบเทียบกับชุดเครื่องมือ JavaScript แล้ว GWT อาจดูแปลกแยกตามลักษณะและการใช้งานและซับซ้อนเกินกว่าที่จะทำสิ่งต่าง ๆ ได้ง่ายควบคุมการควบคุมที่ละเอียดที่คุณต้องใช้ JavaScript โดยตรง

เหตุใดนักพัฒนาเว็บจึงเลือกใช้เครื่องมือเช่น GWT ซึ่งใช้ภาษาเดิมที่ไม่ได้กำหนดเป้าหมายสำหรับเว็บแทนที่จะใช้จาวาสคริปต์บริสุทธิ์และเฟรมเวิร์กและชุดเครื่องมือ

มันวัดได้ดีกว่าและอิงตามเกณฑ์อะไรบ้าง?

คำตอบ:


27

รวมแบตเตอรี่

Tooling ของ Java

มันยอดเยี่ยมมาก:

  • IDE:แม้ว่า IDE บางตัวรองรับ JavaScript ระดับการสนับสนุนก็ไม่ได้เปรียบเทียบ พยายามสร้างรหัส JavaScript ใหม่บนฐานโค้ดขนาดใหญ่ (เช่น 40K + LOC) และร้องไห้
  • การทดสอบหน่วย:แม้ว่าจะหยิบขึ้นมาในช่วงไม่กี่ปีที่ผ่านมา แต่ก็ยังเป็นผู้ใหญ่มากกว่าในโลกของ Java
  • บูรณาการอย่างต่อเนื่องและการตรวจสอบอย่างต่อเนื่อง
  • การสร้างเอกสาร:แน่นอนว่าคุณมี JSDoc และอีกไม่กี่คน

สถิตย์พิมพ์

มันจับข้อบกพร่องก่อน (ที่อยู่ Google Offion ที่จะทำให้นักพัฒนาอยู่ในโลก JavaScript หากคุณต้องการ)

JavaScript ที่ปรับให้เหมาะสม

GWT เขียนJavaScript ที่เร็วและกะทัดรัดกว่าคุณ (สำหรับแอปพลิเคชันขนาดใหญ่) และช่วยให้คุณกำหนดสิ่งที่ถูกส่งไปยังไคลเอนต์ได้ง่ายกว่าเนื้อหาด้วยโซลูชัน JS ที่เทียบเท่าทั้งหมด

สถาปัตยกรรม

มันมีการแยกข้อกังวลสำหรับแอปพลิเคชันขนาดใหญ่ด้วยสถาปัตยกรรม MVC หรือ MVP ที่ดีซึ่งได้เตรียมไว้ล่วงหน้าแล้วที่ปลายนิ้วของคุณ

ห้องสมุดที่มีคุณค่า

GWT มีห้องสมุดที่น่าสนใจและทำให้ง่ายในการสร้างแอพพลิเคชั่นที่ใช้ I18N ด้วยการโหลดบันเดิลแบบไดนามิก

หน่วยทดสอบ

การใช้ JUnit จากภายใน Eclipse IDE และจากบรรทัดคำสั่ง สิ่งนี้เกี่ยวข้องกับประเด็นแรกของฉัน คุณสามารถใช้เครื่องมือคุณภาพโค้ดของ Java ในโครงการ GWT ได้เป็นอย่างดี (สำหรับการตรวจสอบต้นฉบับไม่ใช่การตรวจสอบ bytecode เนื่องจากไม่มี)

มันคือทั้งหมดที่เกี่ยวกับคุณ !!

GWT ไม่ใช่สำหรับทุกคน มันทำให้บางคนมีประสิทธิผลมากขึ้นและเป็นเครื่องมือที่ดีสำหรับนักพัฒนาที่ไม่ใช่ผู้สร้าง JS เพื่อสร้างเว็บแอพมืออาชีพที่มีส่วนหน้าแบบไดนามิกโดยไม่ต้องสัมผัส JavaScript (มากเกินไป) แต่ถ้ามันไม่ได้ผลสำหรับคุณแค่ใช้อย่างอื่น

หากคุณต้องการมากที่สุดของดังกล่าวข้างต้น แต่คุณก็ไม่ต้องการ Java อาจจะมองไปที่Google ปิดหรือDojo Toolkit

เป็นความคิดที่ดีในเวลา: เรื่องประวัติศาสตร์ !!

โลกจาวาสคริปต์ (และเทคโนโลยีหน้าเว็บโดยทั่วไป) มีการใช้งานอย่างมากในทุกวันนี้ดังนั้นสิ่งต่างๆจึงมองหา แต่เพียงไม่กี่ปีหลังสิ่งต่าง ๆ ไม่ค่อยสดใส LESS / SASS นั้นไม่ได้รับความนิยม jQuery ยังไม่ได้เป็นไลบรารี JS ของโรงงาน, ไลบรารี JavaScript ที่ยังไม่เกิดขึ้นทุกสัปดาห์และการใช้เครื่องมือก็ไม่ได้ยอดเยี่ยมโดยทั่วไป

แต่มีความต้องการเพิ่มขึ้นสำหรับแอปพลิเคชันมืออาชีพและเว็บขนาดใหญ่ที่มีส่วนหน้าแบบไดนามิกดังนั้นจึงมีช่องว่างในการเติมเพื่อให้นักพัฒนามีประสิทธิผลมากขึ้น JavaScript มีข้อผิดพลาดและสิ่งแปลกประหลาดมากมายที่คุณต้องระวังและอาจเป็นการดีกว่าถ้าคุณไม่จำเป็นต้องใส่ใจกับมัน ดังนั้นช่องสำหรับเครื่องมือเช่น GWT

ตั้งแต่นั้นมาคนอื่น ๆ ก็ปรากฏตัวขึ้น (CoffeeScript คำนึงถึงแล้ว Dart กำลังดำเนินการอยู่ แต่ยังมีเฟรมเวิร์ก JavaScript ที่มีขนาดใหญ่การปฏิวัติของ JS ฝั่งเซิร์ฟเวอร์ด้วย Node.JS และอื่น ๆ และการกลับมาแข็งแกร่งของ JavaScript ว่า "ดีพอ" ทั้งหมด - ภาษารอบที่จะใช้ไม่เพียง แต่ในฝั่งไคลเอ็นต์ แต่ยังอยู่ในส่วนอื่น ๆ ของสแต็กธุรกิจของคุณ


หมายเหตุเพิ่มเติม

เกี่ยวกับคำถามดั้งเดิมของคุณ (แก้ไขแล้วตอนนี้) เกี่ยวกับการใช้ Firebug

คุณสามารถดีบักรหัส GWT ด้วย Firebug แน่นอน แต่คุณควรจะดีบักโดยตรงจากตัวดีบักของ Eclipse IDE ซึ่งตอนนี้ให้การสนับสนุนการดีบักโค้ดสด

อย่างไรก็ตาม Firebug ยังคงใช้งานได้แม้ว่าคุณจะต้องจำไว้ว่า GWT สร้าง JavaScript ที่ได้รับการปรับปรุงและบีบอัดซึ่งอาจไม่ง่ายในการดีบักตามที่เป็นอยู่

เกี่ยวกับคำถามเดิมของคุณ (แก้ไขแล้วตอนนี้) เกี่ยวกับ CSS

ใช่คุณยังต้องเขียนโค้ด CSS ด้วยตัวเองแน่นอน คุณจับคู่โครงการ GWT ของคุณกับเครื่องมืออื่น ๆ (เช่น SASS) มากหรือน้อยได้อย่างง่ายดาย

มันเป็นแค่เครื่องมือ!

อย่าผิดพลาด GWT สำหรับสิ่งที่ไม่ใช่: คุณไม่ได้เขียนโค้ด Java เพื่อให้ทำงานโดยตรงบนฝั่งไคลเอ็นต์ในฐานะ Java bytecode คุณเขียนโค้ดในภาษาจาวาซึ่งแปลเป็น JavaScript เพื่อประสิทธิภาพและเพื่อให้คุณสามารถใช้ภาษาระดับสูงกว่า (หรืออย่างน้อยนั่นคือสิ่งที่มันควรจะเห็น)

เบบี้ , Java และ JavaScript อาจจะถือได้ว่าเป็นเปรียบในแง่ของระดับนามธรรม อย่างไรก็ตาม Java มาพร้อมกับข้อดี (รายละเอียดด้านบน) ดังนั้นข้อดีในการรับประโยชน์ของเครื่องมือที่มีอยู่โดยไม่ต้องเขียนใหม่ นักพัฒนาของ Google มีความคิดที่ฉลาดทำให้สามารถนำเครื่องมือ Java-oriented ที่มีอยู่กลับมาใช้ใหม่ได้ แต่เพื่อพัฒนาแอปพลิเคชั่น JavaScript

นอกจากนี้พวกเขายังแก้ปัญหาอีกเรื่องหนึ่งซึ่งเป็นการจัดการที่ยุ่งยากของเว็บแอปพลิเคชั่นสองภาษาซึ่ง JavaScript และโค้ด Java ได้รับการปฏิบัติแยกกัน การใช้ GWT ช่วยให้การบรรจบกันในระดับหนึ่งสำหรับทั้งสองด้านของกระบวนการพัฒนา


อ่านเพิ่มเติม:


"เนื้อหา Java และ JavaScript อาจถือได้ว่าเปรียบในแง่ของการแสดงออก" เรื่องตลก? ฟังก์ชันการทำงานที่เทียบเท่าใน Java นั้นยาวประมาณ 5x
วินไคลน์

@ kevincline: ถูกต้องฉันไม่ได้ตั้งใจจะเขียนความหมายฉันหมายถึงมันเป็นระดับนามธรรม ขอขอบคุณที่จำได้ (มันเป็น 2AM ... )
haylem

6
@kevincline: บวกฉันไม่พูดว่า "พิสูจน์" และตายยากลัทธิของภาษาหรืออื่นจะเถียงอะไร :)
haylem

1
นอกเหนือจากรายการของ @ Halem ฉันจะใส่ OO ต้นแบบที่ใช้จาวาสคริปต์นั้นอาจดูแปลกสำหรับบางคนที่มาจากระบบแบบคลาสเช่น Java ความสอดคล้องของวิธีการมักจะมีประโยชน์
Matthew Flynn

@MatthewFlynn: และในทางกลับกัน: นั่นเป็นสาเหตุที่นักพัฒนา JS บริสุทธิ์ต้องใช้เวลากับ GWT band-wagon หรือใช้เฟรมเวิร์กที่มีน้ำหนักมากขึ้น
haylem

6

หลังจากใช้เวลาหลายปีในการพัฒนาเว็บแอพพลิเคชั่นใน GWT ความคิดเห็นของฉันคือ GWT มีข้อเสียร้ายแรงอย่างมากที่ฉันจะไม่ใช้อีกหากไม่ได้บังคับ

ต้นไม้ DOM

แม้ว่าประสิทธิภาพของ JavaScript อาจจะดีกว่าทรี DOM ที่แสดงผลมักจะมีความซับซ้อนโดยไม่จำเป็น ตัวอย่างเช่นการใช้งานทรีใช้องค์ประกอบ 13+ DOM รวมถึง <table> สำหรับแต่ละรายการ ใช้ต้นไม้ขนาดใหญ่ (ประมาณ 10,000 รายการ) เพียงแค่เบราว์เซอร์ค้าง แผนผัง JavaScript / HTML / CSS ล้วนๆสามารถจัดการรายการจำนวนเดียวกันได้อย่างง่ายดาย

พัฒนาการ

รอบการแก้ไขแบบลองของซอร์ส JavaScript / HTML / CSS ล้วนไม่สามารถเอาชนะได้ คุณเพียงแค่บันทึกไฟล์ต้นฉบับและรีเฟรชหน้าเว็บในเบราว์เซอร์ นี่เป็นปัจจัยสำคัญในการเพิ่มผลผลิตและ GWT ก็ไม่สามารถแข่งขันได้ด้วยการใช้รหัสเซิร์ฟเวอร์

การดีบัก JavaScript นั้นง่ายและสนุกไปกับดีบักเกอร์ของ Chrome หรือ Firebug

ผู้เชี่ยวชาญด้านค้อน

แนวคิดของการใช้ Java สำหรับทุกสิ่งสำหรับนักพัฒนาที่เป็น "ผู้เชี่ยวชาญด้านค้อน" พวกเขาคือผู้เชี่ยวชาญของค้อนของพวกเขาดังนั้นทุกอย่างจึงเป็นเล็บ ฉันคิดว่าวิธีนี้ผิดมาก การใช้ GWT ยังต้องการความรู้เรื่อง CSS และ HTML หากไม่มีนักพัฒนา GWT นี้มักชนกับปัญหาที่พวกเขาพบว่าแทบจะเป็นไปไม่ได้ที่จะแก้ไขในขณะที่บางคนที่มีประสบการณ์ HTML / CSS สามารถหาวิธีแก้ปัญหาได้ หากนักพัฒนาต้องการความสามารถนี้พวกเขาสามารถทำให้ง่ายขึ้นด้วยการพัฒนาใน HTML

ความคิดเห็นของฉันคือข้อดีส่วนใหญ่ที่ได้รับจาก GWT นั้นเป็นปัญหาอย่างน้อยที่สุดในขณะที่ข้อเสียนั้นร้ายแรงกว่าเมื่อเปรียบเทียบกับการพัฒนาใน JavaScript / HTML / CSS อย่างแท้จริง


2

มันไม่ได้วัดได้ดีกว่า
สำหรับการใช้งานในชีวิตประจำวันพิจารณาjQuery , AmpleSDKหรือบาง HTML5 polyfill

GWT มีค่าใช้จ่ายมากมาย: จริงและเป็นแนวคิด

อาจมีประโยชน์หากคุณมีแอป java หรือโค้ดจาวาฝั่งเซิร์ฟเวอร์บางพอร์ตเชื่อมต่อกับส่วนหน้าเว็บ


คุณหมายถึง ClojureScript Clojure เป็นภาษาที่ใช้ LISP กำหนดเป้าหมายไปที่ JVM ClojureScript เป็นหนึ่งในการผลิตรหัส JS
haylem

ใช่แล้วได้แก้ไขออกไปแล้ว ทำให้มันง่าย
ZJR

2

ประโยชน์เพียงไม่กี่อย่างของการใช้ GWT ที่ฉันนึกถึง (รายละเอียดเพิ่มเติมอ่านบล็อกของฉันhttp://www.pandurangpatil.com/2012/09/benefits-of-using-gwt.html )

  1. เนื่องจากแอปพลิเคชันไคลเอนต์ GWT เขียนขึ้นใน Java เราจะได้รับโอกาสในการตรวจจับข้อผิดพลาดทางไวยากรณ์ในเวลารวบรวมเนื่องจากเดียวกัน (แม้ว่าจะไม่สนับสนุนคลาส JRE ทั้งหมดเนื่องจากคุณลักษณะเหล่านั้นไม่ได้รับการสนับสนุนจากเบราว์เซอร์) ให้ยกตัวอย่างเพื่อเข้าใจสิ่งที่ฉันพูด หากคุณสะกดชื่อตัวแปร JavaScript โดยใช้ไลบรารี่แท้ของ JavaScript วิธีเดียวที่คุณสามารถตรวจจับข้อผิดพลาดดังกล่าวคือเรียกใช้แอปพลิเคชันและทดสอบผลลัพธ์ที่ต้องการ คุณสมบัติ Java เช่น Generics และ Annotations นั้นใช้งานได้เต็มรูปแบบและสามารถใช้ในแอปพลิเคชันของคุณได้

  2. หนึ่งสามารถใช้ประโยชน์จากห้องสมุดที่มีอยู่หรือเขียนหนึ่งเพื่อสร้างรหัสตามความต้องการได้อย่างง่ายดายเป็นรหัสที่จำเป็นต้องสร้างขึ้นจำเป็นต้องอยู่ใน Java คอมไพเลอร์ GWT ดูแลการรวบรวมและแปลงเป็น JavaScript

  3. การจัดการรหัสจะง่ายขึ้น

  4. เราสามารถเขียนตรรกะทางธุรกิจทั่วไปบางอย่างในลักษณะที่สามารถใช้ในรหัสฝั่งไคลเอ็นต์ของ GWT และบนฝั่งเซิร์ฟเวอร์ในจาวาเช่นการตรวจสอบข้อมูลหรือฟังก์ชั่นยูทิลิตี้ทั่วไป

  5. ด้วยการใช้ปลั๊กอิน GWT eclipse คุณสามารถดีบักโค้ดไคลเอ็นต์ใน Java สำหรับตรรกะทางธุรกิจของคุณได้อย่างง่ายดาย

  6. ในฐานะที่เป็นคอมไพเลอร์ GWT รวบรวมรหัส Java ลูกค้าของคุณและสร้าง JavaScript จากมัน สิ่งที่คุณต้องการปรับใช้กับเซิร์ฟเวอร์ของคุณและมันจะได้รับการบริการและดำเนินการในเบราว์เซอร์ผู้ใช้เมื่อมีการร้องขอ ในขณะที่สร้าง JavaScript นี้มันจะทำการเพิ่มประสิทธิภาพบางอย่าง

    • มันไม่ได้พิจารณารหัสที่ตายแล้วในขณะที่สร้าง JavaScript เมื่อฉันพูดรหัสที่ตายแล้วฉันหมายถึงการพูดว่า "รหัสที่มี แต่ไม่ได้รับการเรียกจากกระแสหลัก" ในทางกลับกันลดขนาดที่มีประสิทธิภาพของรหัส JavaScript สุดท้ายของคุณ

    • มันจะดูแลโค้ด JavaScript ที่สร้างความสับสน

    • มันจะลดขนาดของรหัส JavaScript ที่สร้างขึ้น

    • และที่สำคัญมันจะสร้างรหัสแยกเฉพาะเบราว์เซอร์ที่แยกต่างหาก เมื่อฉันพูดแยกมันจะสร้างจาวาสคริปต์แยกเฉพาะเบราว์เซอร์ซึ่งจะให้บริการเมื่อได้รับการร้องขอตามลำดับจากเบราว์เซอร์ที่กำหนด ซึ่งจะช่วยลดขนาดของรหัส JavaScript ที่ได้รับการดาวน์โหลดสำหรับเบราว์เซอร์ที่เฉพาะเจาะจงเพราะมันไม่ได้มีการจัดการเฉพาะเบราว์เซอร์ทั้งหมดในรหัสเดียว

  7. หากคุณกำลังเขียนใบสมัครของคุณสำหรับภาษาต่าง ๆ เช่นภาษาอังกฤษ, ภาษาฮินดี, ภาษามราฐีและอื่น ๆ โดยใช้คุณสมบัติการทำให้เป็นสากลของ GWT ในขณะที่สร้างรหัส JavaScript มันสร้างสำเนาต่อภาษาและการรวมกันของเบราว์เซอร์ ซึ่งทำให้รหัส JavaScript ที่สร้างขึ้นสำหรับการรวมกันของภาษาและเบราว์เซอร์ที่ดีที่สุดและเล็กที่สุด

  8. ในกรณีที่คุณจำเป็นต้องใช้จาวาสคริปต์โดยตรงซึ่งสามารถเรียกได้จากรหัส Java GWT หนึ่งสามารถทำได้โดยใช้ JSNI (JavaScript Native Interface) หนึ่งสามารถเรียกรหัส GWT Java กลับจาก JavaSctipt

  9. ถ้าคุณต้องการที่จะทำให้หน้าบุ๊กมาร์กสามารถใช้ประโยชน์จากคุณสมบัติประวัติของ GWT

  10. หากคุณต้องการใช้ JSON เป็นรูปแบบข้อมูลสำหรับการสื่อสารและการจัดการมันมีคุณสมบัติที่ดีมากที่เรียกว่า JavaScript Overlay Types

  11. คุณสมบัติการเข้าเล่มแบบผ่อนผันของ GWT เป็นคุณสมบัติที่ดีซึ่งฉันคิดว่าเป็นไปได้ที่จะให้เนื่องจาก Java

  12. คุณสามารถสร้างส่วนต่อประสานผู้ใช้โดยใช้วิดเจ็ตของ GWT ในสไตล์ Java Swing คุณสามารถสร้างวิดเจ็ตที่กำหนดเองได้อย่างง่ายดาย

  13. หากคุณต้องการสร้างส่วนต่อประสานผู้ใช้ (เว็บเพจ) ในสไตล์ html แท้คุณสามารถใช้คุณสมบัติ Declarative UI ของ GWT ซึ่งฉันรู้สึกถึงหนึ่งในคุณสมบัติหลักของ GWT ซึ่งทำให้นักพัฒนาสามารถสร้างเพจในสไตล์ HTML ล้วนๆได้ง่ายขึ้น ซึ่งฉันคิดว่าสามารถบำรุงรักษาได้ดีกว่าการเข้ารหัสสไตล์สวิง และที่สำคัญที่สุดคุณยังสามารถมีตรรกะของคุณใน Java และนำเสนอเฉพาะส่วนหนึ่งใน HTML บริสุทธิ์ (หมายเหตุ: วิธีใดที่คุณเคยใช้ (Declarative UI หรือ Swing Style) ในที่สุดมันจะเป็น HTML เท่านั้น แต่สิ่งที่สร้างความแตกต่างคือวิธีที่คุณใช้รหัสและบำรุงรักษา)

  14. คุณสมบัติ Client Bundle ของ GWT ทำให้การจัดการทรัพยากรบนเว็บอื่น ๆ ของคุณเป็นเรื่องง่ายเช่น css, รูปภาพและเนื้อหาข้อความอื่น ๆ

    • ทรัพยากร CSS ทำให้เป็นไปได้ที่จะมีตรรกะเงื่อนไขใน CSS ของคุณ คุณยังสามารถเข้าถึงค่าแบบไดนามิกบางอย่างได้จากรหัส Java ฝั่งไคลเอ็นต์ของ GWT ของคุณ
    • นอกจากนี้ยังจะดูแลคลาส css ของคุณที่ทำให้งง และที่สำคัญที่สุดคือ GWT มีการสร้างอินเตอร์เฟสจากไฟล์ css ของคุณโดยอัตโนมัติเพื่อใช้ css classe
    • แหล่งข้อมูลรูปภาพช่วยให้นักพัฒนาซอฟต์แวร์สามารถใช้รูปภาพในแอปพลิเคชันของคุณได้ง่ายขึ้น เมื่อฉันพูดได้อย่างง่ายดายฉันหมายถึงเมื่อคุณต้องการใช้รูปภาพในรหัส GWT Java แทนที่จะใช้ URL แบบตายตัวคุณสามารถใช้ทรัพยากรรูปภาพได้ ประโยชน์ที่คุณจะได้รับจากการใช้ทรัพยากรรูปภาพคือถ้าคุณจะเปลี่ยนตำแหน่งหรือใช้ภาพอื่นที่มีชื่อแตกต่างกันคุณต้องเปลี่ยนมันในที่เดียว คุณสมบัติที่สำคัญของทรัพยากรรูปภาพคือเมื่อคุณใช้กับทรัพยากร CSS เป็น sprite มันจะดูแลการสร้างอิมเมจนั้นเป็น data in-line uri หรือใช้กับ sprite ฉันไม่ได้บอกว่ามันเป็นไปไม่ได้ที่จะทำกับเฟรมเวิร์กอื่น ๆ สิ่งที่สำคัญกว่าคือรวดเร็วและง่ายดายที่คุณสามารถทำได้ GWT ทำให้คุณง่ายขึ้นมาก
    • แหล่งข้อมูลเพิ่มการเพิ่มประสิทธิภาพบางอย่างสำหรับไฟล์ข้อมูลเช่น. pdf เพื่อเปลี่ยนชื่อไฟล์เหล่านั้นตามเนื้อหาของพวกเขาเพื่อให้เบราว์เซอร์สามารถแคชได้อย่างมาก ไฟล์ข้อมูลขนาดเล็กอาจถูกแปลงเป็น uri ข้อมูลในบรรทัด
    • ด้วยการใช้ Client Bundle สำหรับแหล่งข้อมูลอื่น ๆ ของเว็บและหากคุณจัดโครงสร้างแอปพลิเคชันของคุณให้เป็นโมดูลที่แตกต่างกัน มันสามารถกลายเป็นโมดูลที่ใช้ซ้ำได้อย่างสมบูรณ์โดยรวมกับทุกทรัพยากร เรื่องใหญ่เกี่ยวกับโมดูลที่ใช้ซ้ำได้คืออะไร ถ้าคุณใช้อิมเมจโดยใช้ URL โดยตรงในบางโมดูล และถ้าคุณรวมโมดูลนั้นไว้ในโมดูลอื่นและลองใช้ส่วนประกอบที่สร้างในโมดูลนั้นคุณยังจำเป็นต้องคัดลอกรูปภาพเหล่านั้นไปยัง URL สาธารณะของแอปพลิเคชันสุดท้ายของคุณ ซึ่งคุณไม่จำเป็นต้องทำถ้าคุณใช้รูปภาพเหล่านั้นเป็นทรัพยากรรูปภาพ
    • การเพิ่มประสิทธิภาพอื่น ๆ ที่คุณสามารถทำได้โดยการสร้างโมดูลขนาดเล็กโดยใช้มัดลูกค้าสำหรับ css และรูปภาพ ที่ซึ่งคุณสามารถเลือกที่จะรวมเฉพาะโมดูลที่จำเป็นภายในโมดูลสุดท้ายของคุณ ความแตกต่างที่จะเกิดขึ้นคือ JavaScript โมดูลสุดท้ายและแหล่งข้อมูลอื่นจะมีเนื้อหาที่ต้องการเท่านั้นและไม่ใช่เนื้อหาทั้งหมดแม้ว่าคุณต้องการใช้ชิ้นส่วนเล็ก ๆ ของโมดูล
  15. Cell Widgets: เพื่อนำเสนอการรวบรวมข้อมูลที่แบ่งหน้า GWT มี Cell Widgets มีวิดเจ็ตเช่น CellTable, CellList, CellTree และ CellBrowser

    • CellTable มีไว้สำหรับการนำเสนอข้อมูลในรูปแบบตารางเลขหน้ามันมีคุณสมบัติที่คุณสามารถเปลี่ยนเนื้อหาของเซลล์ที่กำหนด สนับสนุนการแบ่งหน้าในฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ทั้งสองรองรับการเรียงลำดับในคอลัมน์และยังรองรับการเลือกหนึ่งหรือหลายระเบียนและสร้างเหตุการณ์สำหรับเดียวกัน
    • CellList สามารถใช้เพื่อนำเสนอข้อมูลในรูปแบบรายการและรายการสามารถแสดงในรูปแบบที่กำหนดเอง นอกจากนี้ยังสนับสนุนการแบ่งหน้าฝั่งไคลเอ็นต์และเซิร์ฟเวอร์และการเลือกหนึ่งหรือหลายระเบียนและสร้างกิจกรรมสำหรับการเลือก CellTree และ CellBrowser สามารถใช้เพื่อนำเสนอข้อมูลในรูปแบบต้นไม้
  16. การสื่อสารกับเซิร์ฟเวอร์จากรหัสลูกค้า GWT รองรับหลายวิธีในการใช้การสื่อสารกับเซิร์ฟเวอร์ของลูกค้า

    • หากคุณไม่ได้กังวลเกี่ยวกับโปรโตคอลที่ใช้สำหรับการถ่ายโอนข้อมูลก็คือกลไก GWT RPC มันง่ายมากที่จะรวมรหัสฝั่งไคลเอ็นต์ของคุณสำหรับการถ่ายโอนข้อมูลกับเซิร์ฟเวอร์ คุณสามารถกำหนด DTO (การถ่ายโอนข้อมูลวัตถุ) ที่กำหนดเองในรหัสลูกค้าซึ่งสามารถใช้กับรหัสฝั่งเซิร์ฟเวอร์ การใช้งานฝั่งเซิร์ฟเวอร์ยอมรับ DTO เดียวกันกับพารามิเตอร์หรือค่าส่งคืน ทุกสิ่งทุกอย่างได้รับการดูแลจากการทำงานของเฟรม GWT RPC มันยังแพร่กระจายข้อยกเว้นยกจากรหัสฝั่งเซิร์ฟเวอร์เพื่อโทรในรหัสฝั่งไคลเอ็นต์ (ให้คุณต้องกำหนดคลาสการยกเว้นเหล่านั้นภายในแพคเกจรหัสฝั่งไคลเอ็นต์ GWT RPC ภายในใช้การโทร AJAX กับโปรโตคอลที่กำหนดเองสำหรับการถ่ายโอนข้อมูล

    • หากคุณไม่ต้องการใช้ GWT RPC คุณสามารถโทรเซิร์ฟเวอร์ AJAX เพื่อดึงข้อมูลจากเซิร์ฟเวอร์โดยใช้เครื่องมือสร้างคำขอ ซึ่งยังใช้งานได้ง่ายกว่ามาก นอกจากนี้ยังมีฟีเจอร์ Factory Request ที่น่าสนใจ ด้วยคุณสมบัตินี้คุณสามารถทำให้ DAO หรือเลเยอร์บริการของคุณได้รับการเรียกจากรหัสลูกค้า ในการทำเช่นนั้นคุณต้องกำหนดชุดอินเทอร์เฟซน้อยสำหรับบริการและชนิดข้อมูลที่กำหนดเองของคุณ และการใช้อินเตอร์เฟสเหล่านี้คุณสามารถเข้าถึงบริการเหล่านั้นได้จากรหัสลูกค้า ฉันได้เขียนปลั๊กอิน maven เพื่อสร้างส่วนต่อประสานนี้ หากคุณใส่คำอธิบายประกอบเลเยอร์ DAO ของคุณด้วยคำอธิบายประกอบที่จำเป็นต้องอ้างอิง ( https://github.com/pandurangpatil/gwt-mvn-helper) อ้างอิงโมดูล mvn-helper-test ภายในเพื่อการใช้งาน Request Factory มีเป้าหมายที่จะรวมกับเลเยอร์ ORM เช่น JDO หรือ JPA บนเซิร์ฟเวอร์ มันมีการสนับสนุนในการโทรยังคงอยู่ในเอนทิตีที่กำหนดจากรหัสลูกค้า และที่สำคัญที่สุดเมื่อคุณเรียกใช้วิธีการคงอยู่มันจะคำนวณและส่งการเปลี่ยนแปลงเท่านั้น (เดลต้า) ไปยังเซิร์ฟเวอร์เพื่อบันทึก

    • หากคุณต้องการทำการโทรข้ามโดเมน JSONP คุณสามารถทำการอ้างอิงเดียวกันได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.