2009-03-20 18 views
6

मैं यह स्थापित करने की कोशिश कर रहा हूं कि क्या हम चार्ट सर्वरसाइड को प्रतिपादित करने और उन्हें ब्राउज़र के रूप में ब्राउज़र के रूप में धक्का दे रहे हैं या चार्ट क्लाइंटसाइड को आकर्षित करने के लिए जावास्क्रिप्ट चार्टिंग लाइब्रेरी का उपयोग कर रहे हैं।वेब चार्टिंग, सर्वरसाइड या क्लाइंट साइड?

मैं जेएफरी चार्ट और डोजो चार्टिंग पुस्तकालयों को देख रहा हूं, मेरा लक्ष्य एक मौजूदा जेएसपी साइट है जो जेबॉस में चलता है।

क्या किसी के पास इसका कोई अनुभव है जो प्रत्येक के गुण/त्रुटियों को इंगित करने में सक्षम हो सकता है।

फिलहाल मैं क्लाइंट साइड प्रतिपादन को बहुत अधिक कुशलता के नरक के रूप में देख रहा हूं जब तक कि डेटासेट विशाल न हो।

उत्तर

7

मैं एक पुस्तकालय की सिफारिश करना चाहता हूं जिसे मैंने लिखा था: charts4j जो सर्वर-साइड चार्टिंग समाधान है।

  • Google Chart API
  • के लगभग सभी सुविधाओं के URL पैरामीटर वाले लाइन चार्ट
  • साथ संवाद स्थापित करने के लिए आवश्यक हैं बनाने की बदसूरत विवरण छिपा देता है शामिल किया जा सकता है में किसी भी इंटरनेट सक्षम का समर्थन करता है: यहाँ कुछ विशेषताएं हैं स्विंग या वेब अनुप्रयोग पर्यावरण (जेएसपी/सर्वलेट, जीडब्ल्यूटी, स्प्रिंग एमवीसी, आदि)
  • 100% शुद्ध कोर जावा समाधान। विशेष ग्राफिक्स पुस्तकालयों, आदि की आवश्यकता नहीं
  • सुपर-स्केलेबल & लाइटवेट। केवल एक 160 केबी जार और एक इंटरनेट कनेक्शन की आवश्यकता
  • अच्छी तरह से प्रलेखित
  • सबसे अच्छा, यह मुफ़्त है!

यहां कुछ testimonials हैं। FAQ भी देखें।

मेरे पास my blog पर स्प्रिंग एमवीसी (जेएसपी का उपयोग करके) ऐप में इस तकनीक को शामिल करने का एक उदाहरण है।

+0

दिलचस्प लग रहा है, कारण है कि हम Google api के रूप में दूर हो गए हैं, यह है कि (प्रतीत होता है) को Google और इंटरनेट से कनेक्शन की आवश्यकता होती है, जबकि खराब होता है क्योंकि हमारे अनुप्रयोगों को अक्सर बिना किसी बाहरी कनेक्शन वाले इंट्रानेट में भागना पड़ता है। –

+0

यह सही है। कोई इंटरनेट कनेक्शन नहीं, कोई Google चार्ट नहीं। यह कुछ चार्टिंग समस्याओं को बहुत अच्छी तरह से हल करता है, लेकिन सभी नहीं। –

0

जेएफरी चार्ट बहुत अच्छी तरह से स्थापित है और कई सालों से रहा है। मैंने इसे पिछली परियोजनाओं पर इस्तेमाल किया है और यह बहुत अच्छा काम करता है। इसका उपयोग एक समृद्ध ग्राहक एप्लिकेशन या वेब एप्लिकेशन से किया जा सकता है। इसमें दोनों परिदृश्यों के लिए उदाहरण अनुप्रयोग हैं। यदि आप अपना आवेदन वितरित कर रहे हैं तो यह भी जीपीएल लाइसेंस प्राप्त है।

सर्वर-पक्ष करने के फायदे यह हैं कि आप परिणामी चार्ट को एक छवि के रूप में प्रस्तुत कर सकते हैं और क्रॉस ब्राउज़र संगतता के बारे में चिंता नहीं कर सकते हैं। मैंने एक Servlet और स्ट्रूट्स से प्रतिपादन करके JFreeChart को शामिल किया है, बहुत अच्छी तरह से काम करता है।

मैं दोजो चार्टिंग के लिए बात नहीं कर सकता, क्योंकि यह उचित रूप से नया है।

0

पहला निर्णय लेने वाला कारक यह होना चाहिए कि आपको चार्ट को जावास्क्रिप्ट अक्षम के साथ सुलभ करने की आवश्यकता है या नहीं। यदि आप ऐसा करते हैं या सोचते हैं, तो यह जावास्क्रिप्ट को पूरी तरह से नियम देता है।

0

मुझे किसी भी तरफ बहुत सारे वैध बिंदु दिखाई देते हैं, लेकिन एक चीज जो मुझे चार्टिंग क्लाइंट पक्ष करने के बारे में पसंद है, चार्ट के साथ कुछ बातचीत करने की क्षमता है। डोजो चार्टिंग लाइब्रेरी का उपयोग करके, आपके पास dojox.charting.action2d.Highlight और dojox.charting.action2d.Tooltip जैसे चार्ट इंटरैक्शन के लिए कई विधियां हैं। आप रीफ्रेश की आवश्यकता के बिना चार्ट को गतिशील रूप से अद्यतन भी कर सकते हैं, और मैं कुछ स्थितियों को देख सकता हूं जहां यह उपयोगी हो सकता है।

बेशक, यह सब आपके ऊपर है, लेकिन मुझे चार्ट पसंद है, मैं सर्वर से प्रस्तुत छवियों की तुलना में पूरी तरह से बेहतर बातचीत कर सकता हूं, और मुझे लगता है कि बहुत से लोग उस पर मुझसे सहमत हैं।

2

मैं आपके प्रदर्शन/प्रावधान आवश्यकताओं को निर्धारित करने और वहां से निर्णय लेने की अनुशंसा करता हूं। यदि आप बड़ी संख्या में ग्राहकों की अपेक्षा कर रहे हैं, तो प्रत्येक को बड़ी संख्या में चार्ट की आवश्यकता होती है जिसे समय-समय पर अपडेट करने की आवश्यकता हो सकती है, ग्राहकों पर प्रसंस्करण को ऑफ़लोड करना बेहतर समाधान होगा। जैसा कि जेस्पर ने उल्लेख किया है, आप अधिक जटिल कार्यक्षमता के लिए सर्वर पर कॉलबैक की आवश्यकता के बजाय क्लाइंट पर चार्ट के साथ सीधे अधिक बातचीत करने में सक्षम होंगे।

यदि आपके चार्ट के लिए सामान्य उपयोग-मॉडल सरल है (उदाहरण के लिए सर्वर द्वारा फ्लाई पर स्थिर चार्ट उत्पन्न हो रहे हैं, तो w/आउट अपडेट करने की आवश्यकता है), और ग्राहकों की संख्या कम है, तो आप हार्डवेयर का उपयोग कर ठीक हो सकते हैं बेहतर प्रदर्शन में सुधार करने के लिए। सर्वर-साइड शायद इस मामले में पर्याप्त होगा।

स्केलेबिलिटी और प्रदर्शन बाद में सड़क के नीचे लागू करना मुश्किल हो सकता है। यदि आपके पास शुरुआत से इसे कम करने की क्षमता है, तो आपको ऐसा करना चाहिए, क्योंकि मौजूदा उपयोग मॉडल अक्सर बदलते हैं क्योंकि भविष्य के उपयोगकर्ता निर्णय लेते हैं कि उन्हें तेज़/बेहतर कार्यक्षमता की आवश्यकता है।

0

यदि आप जावास्क्रिप्ट के साथ जाते हैं तो आप जावास्क्रिप्ट बंद होने पर सर्वर-साइड समाधान भी चाह सकते हैं।

यदि आप अविभाज्य जावास्क्रिप्ट का उपयोग करते हैं तो जावास्क्रिप्ट चालू होने पर यह सर्वर-साइड समाधान के लिए जावास्क्रिप्ट चार्टिंग टूल का उपयोग करने के लिए लिंक बदल सकता है।

मुझे सर्वर-साइड पर PHP का उपयोग करने के लिए सबसे अच्छा लगता है क्योंकि gdlib अच्छा है, और मेरा टॉमकैट सर्वर कई बार त्रुटियों को फेंक देगा क्योंकि यह x11 सर्वर से कनेक्ट करने में सक्षम नहीं है, भले ही वह हेडलेस मोड में चल रहा हो।

कई समाधान संभव हैं, या आप इसे स्वयं कर सकते हैं। ग्राफिंग कठिन नहीं है, यह आपके लिए आवश्यक चीज़ों पर निर्भर करता है। उदाहरण के लिए, यदि आप svg का उपयोग कर जा सकते हैं तो वह एनिमेटेड चार्ट की अनुमति देगा, लेकिन कई ब्राउज़रों के लिए प्लगइन की आवश्यकता है।

संबंधित मुद्दे