2009-03-23 12 views
7

क्या यह एक छवि को एजेक्स प्रतिक्रिया के XML में एम्बेड करने के लिए संभव है (और क्रॉस-ब्राउज़र समर्थित है), और उसके बाद जावास्क्रिप्ट का उपयोग करके उस छवि को लोड करें?AJAX प्रतिक्रिया में किसी छवि को एम्बेड करना

मेरे पास एक ऐसी प्रणाली है जो इसके माध्यम से चल रहे सत्रों की संख्या के आधार पर कुछ गणना करता है। परिणाम तब गिरे जाते हैं, और दो भागों में लौटते हैं:

1) एक्सएमएल में ग्राफ, योग और छवि मानचित्र डेटा के बारे में जानकारी शामिल है जो उपयोगकर्ता को प्रासंगिक क्षेत्रों पर क्लिक करने की इजाजत देता है।

2) ग्राफ छवि।

चूंकि डेटा दो अनुरोधों के बीच बदल सकता है (और गणना करने के लिए महंगा हो सकता है), मैं इसे एक ही अनुरोध में करना चाहता हूं (छवि को एक्सएमएल के साथ वापस कर दें)। वर्तमान कार्यान्वयन आंकड़ों को एक छोटी अवधि के लिए कैश करता है ताकि एकाधिक अनुरोधों के परिणाम अभी भी मिल जाएंगे। कैश होने की आवश्यकता वाले डेटा की मात्रा बढ़ने जा रही है (~ 2.5K से ~ 1.2MB तक), मैं वैकल्पिक विधि का प्रयास करना चाहता हूं।

नोट: मैं इनलाइन बी 64 पीएनजी छवियों का उपयोग नहीं करना चाहता क्योंकि वे IE में समर्थित नहीं हैं।

+0

अच्छा सवाल। मुझे आशा है कि किसी को यह पता चलेगा कि यह कैसे करना है, लेकिन मैं निराशावादी हूं। – erikkallen

उत्तर

3

इस अधिक काम है कि यह लायक है की तरह लगता है के रूप में, मैं तय कर लिया है कि एक सरल समाधान होगा:

1) ग्राफ़ की जानी है के विवरण के साथ ग्राहक के लिए XML डेटा भेजें।

2) क्लाइंट छवि के लिए अनुरोध भेजता है, जिसमें ग्राफ़ डेटा (Google चार्ट एपीआई के समान) शामिल है।

यह डेटा से डेटा को प्रतिपादित करता है, और फिर भविष्य में इसका उपयोग अन्य डेटा सेट के लिए सामान्य चार्ट उत्पन्न करने के लिए किया जा सकता है। दूसरा लाभ यह है कि इसे किसी भी कैशिंग सर्वर-साइड की आवश्यकता नहीं होती है क्योंकि केवल 1 अनुरोध का उपयोग किया जाता है।

3

क्या आप सर्वर पर छवि को स्टोर नहीं कर सकते हैं और यूआरएल को क्लाइंट को भेज सकते हैं?

+0

वह उस मार्ग से बचने की कोशिश कर रहा है, क्योंकि कैश की गई छवियों का आकार कूदने वाला है। –

+0

यह एक विकल्प है, लेकिन मैं फ़ाइल प्रबंधन को संभालने के लिए कोड से बचना चाहता हूं। – jthompson

1

क्या आपने Google's Chart API का उपयोग करने पर विचार किया है?

+0

दुर्भाग्यवश, Google की API का उपयोग करना एक विकल्प नहीं है। – jthompson

0

यदि भंडारण एक विकल्प नहीं है। स्मृति में छवि बनाएं और एक php फ़ाइल की तरह एक स्क्रिप्ट से प्रतिक्रिया के लिए बाइनरी छवि डेटा फ्लश करें। बस सही शीर्षलेख का उपयोग करें:

Content-type: image/png 

छवि हर बार पुनर्जीवित हो जाती है।

पूरी तरह से सुनिश्चित करने के लिए कि छवि कैश नहीं होती है, क्वेरीस्ट्रिंग में कुछ यादृच्छिक पैरामीटर संलग्न करें।

+0

छवि पहले से ही स्मृति में बनाई गई है और इस तरह से बाहर भेजा गया है। जो मैं पूरा करने की कोशिश कर रहा हूं वह छवि के साथ कुछ एक्सएमएल डेटा भी शामिल है। – jthompson

+0

एचएम मैं देखता हूं, अगर बेस 64 कोई विकल्प नहीं है, तो मुझे समाधान नहीं दिख रहा है ... –

0

आप छवि को AJAX-client पर वापस कर सकते हैं, और फिर छवि के लिए एक्स-HTTP-शीर्षलेख में XML डेटा शामिल कर सकते हैं।

लेकिन आपको पता लगाना होगा कि क्या AJAX-क्लाइंट से एक्स-हेडर पढ़ना संभव है या नहीं।

2

यह देखने के लिए कि क्या यह अवधारणा काम करेगी, आप यह link देख सकते हैं। यह link शायद उपयोगी है।

मुझे लगता है कि एक्सएमएल में डेटा के दोनों सेट को गठबंधन करने का प्रयास करना दिलचस्प होगा।

1

अच्छी तरह से actually you can लेकिन शायद यह इसके लायक नहीं होगा।ऐसा लगता है कि वेक्टर आधारित विधि जैसे कैनवास और VML alternatives for IE ग्राफ को प्रतिपादित करने के लिए एक बेहतर विकल्प होगा। फिर आपको केवल ब्राउज़र डेटा को ब्राउज़र में पास करना होगा।

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