รับค่าดรอปดาวน์หลายค่าโดยใช้การเรียก json เพียงครั้งเดียวจากฐานข้อมูล

ฉันมีข้อกำหนดที่ฉันต้องเติมค่าแบบเลื่อนลงหลายค่าซึ่งจะถูกดึงมาจากฐานข้อมูล ฉันใช้เฟรมเวิร์ก struts2 และเรียกใช้การดำเนินการ json ซึ่งส่งคืนประเภท json แต่ปัญหาอยู่ที่นี่สำหรับแต่ละดรอปดาวน์ที่ฉันต้องเขียนการดำเนินการแยกกัน ซึ่งทำให้เกิดการเรียกไปยัง DB ที่แตกต่างกันมากมาย

เป็นไปได้หรือไม่ที่จะทำสิ่งนี้ในการเรียกการกระทำ json ครั้งเดียวเพื่อให้สามารถดึงค่าที่ต้องการทั้งหมดได้โดยใช้การกระทำ json เดียวเท่านั้น และค่าต่างๆ จะถูกเติมในรายการดรอปดาวน์ตามลำดับ

ขณะนี้สิ่งที่ฉันทำอยู่ดูเหมือนว่าจะทำงานได้ดี แต่ฉันกำลังมองหาวิธีแก้ปัญหา (ถ้ามี) โดยที่เราไม่ต้องการการโทร <s:url/> จำนวนมากเหล่านี้

<s:url var="fillA" action="fillA" />
<sj:select id="dropdownA" href="/th%{fillA}" list="listA"/>

<s:url var="fillB" action="fillB" />
<sj:select id="dropdownB" href="/th%{fillB}" list="listB"/>

<s:url var="fillC" action="fillC" />
<sj:select id="dropdownC" href="/th%{fillC}" list="listC"/>

person Gaurav Parek    schedule 16.09.2015    source แหล่งที่มา
comment
แม้ว่าจะมีการดำเนินการเพียงครั้งเดียว คุณจะต้องมีสามคำถามที่แตกต่างกัน (เว้นแต่จะทำในละครสัตว์) ดังนั้นข้อดีจะเป็นเช่นไร โดยหลีกเลี่ยงการเปิด/ปิดการเชื่อมต่อ (ไม่ได้รวมกลุ่มกันใช่ไหม) ในกรณีเช่นนี้ ฉันขอแนะนำแคช ต่อผู้ใช้ หรือต่อแอปพลิเคชันด้วย @Singleton ตามข้อกำหนดเฉพาะของโครงการของคุณ (จำนวนผู้ใช้ จำนวนข้อมูล จำนวนการเชื่อมต่อพร้อมกัน ฯลฯ...)   -  person Andrea Ligios    schedule 16.09.2015
comment
หากคุณจำเป็นต้องหลีกเลี่ยงการร้องขอหลายรายการอย่างแน่นอน ฉันจะรวมคำขอเหล่านั้นไว้ในการดำเนินการเดียวซึ่งส่งคืนออบเจ็กต์ JSON ที่มีออบเจ็กต์ผลลัพธ์แต่ละรายการที่สร้างโดยวิธีดั้งเดิมสามวิธีของคุณ นอกจากนี้ หากไม่มีแท็ก <sj:select> สามแท็กแยกกันจะไม่ดำเนินการค้นหาสามรายการแยกกันโดยอัตโนมัติ แม้ว่าแท็กเหล่านั้นจะชี้ไปที่ URL เดียวกันหรือไม่   -  person Shotgun Ninja    schedule 16.09.2015
comment
@AndreaLigios ขอบคุณมากครับ   -  person Gaurav Parek    schedule 19.09.2015
comment
AFAIR sj;select จะเลือกค่าเหล่านั้นไว้ล่วงหน้าในการตอบกลับ แต่หากคุณใช้ตัวเลือกเติมข้อความอัตโนมัติ จะมีการร้องขอ XHR จำนวนมากสำหรับการตอบกลับทุกครั้ง หากเป็นทรัพยากรหนึ่งที่สามารถดึงข้อมูลได้ด้วยคำขอ XHR เดียว แต่หากเป็นแหล่งข้อมูลที่แตกต่างกัน คุณจะไม่สามารถดำเนินการใดๆ กับทรัพยากรนั้นได้ เบราว์เซอร์จะจัดการสถานการณ์โดยใช้ส่วนหัวควบคุมแคช   -  person Roman C    schedule 24.09.2015
comment
@AndreaLigios: ฉันตรวจสอบแล้วและสำหรับข้อกำหนดของเรา มันจะดีกว่าที่จะมีแคชต่อแอปพลิเคชัน ฉันยังไม่เคยใช้แคชมาก่อนหากคุณสามารถให้ลิงก์หรือตัวอย่างสำหรับการใช้งานดังกล่าวจะเป็นประโยชน์สำหรับฉัน   -  person Gaurav Parek    schedule 06.10.2015
comment
@GauravParek คุณโชคดีมาก อย่าลังเลที่จะโหวตคำถามและ/หรือคำตอบ   -  person Andrea Ligios    schedule 06.10.2015