jQuery SVG बनाम राफेल [बंद]


254

मैं SVG और JavaScript / jQuery का उपयोग करके एक इंटरैक्टिव इंटरफ़ेस पर काम कर रहा हूं, और मैं राफेल और jQuery SVG के बीच निर्णय लेने की कोशिश कर रहा हूं । मैं जानना चाहता हूं

  1. दोनों के बीच व्यापार-नापसंद क्या है
  2. जहां विकास की गति दिख रही है।

मुझे राफेल में VML / IE समर्थन की आवश्यकता नहीं है, या jQuery SVG की साजिश रचने की क्षमता। मैं मुख्य रूप से एक एसवीजी कैनवास पर व्यक्तिगत वस्तुओं को बनाने, चेतन करने और उनमें हेरफेर करने के लिए सबसे सुरुचिपूर्ण तरीके से दिलचस्पी लेता हूं।

जवाबों:


194

मैंने हाल ही में राफेल और jQuery SVG दोनों का उपयोग किया है - और यहाँ मेरे विचार हैं:

राफेल

पेशेवरों: एक अच्छा स्टार्टर लाइब्रेरी, एसवीजी के साथ बहुत सारी चीजें करना आसान है। अच्छी तरह से लिखा और प्रलेखित। उदाहरण और डेमो के बहुत सारे। बहुत विलक्षण वास्तुकला। एनीमेशन के साथ महान।

विपक्ष: वास्तविक एसवीजी मार्कअप पर एक परत है, जिससे एसवीजी के साथ और अधिक जटिल चीजें करना मुश्किल हो जाता है - जैसे कि समूहन (यह समूह का समर्थन करता है, लेकिन समूह नहीं)। पहले से मौजूद तत्वों के महान w / संपादन नहीं करता है।

jQuery के एसवीजी

पेशेवरों: एक jquery प्लगइन, यदि आप पहले से ही jQuery का उपयोग कर रहे हैं। अच्छी तरह से लिखा और प्रलेखित। उदाहरण और डेमो के बहुत सारे। अधिकांश एसवीजी तत्वों का समर्थन करता है, आसानी से तत्वों तक देशी पहुंच की अनुमति देता है

विपक्ष: वास्तुकला राफेल के रूप में एक्स्टेंसिबल नहीं है। कुछ चीजें बेहतर दस्तावेज की जा सकती हैं (जैसे एसवीजी तत्व को कॉन्फ़िगर करना)। पहले से मौजूद तत्वों के महान w / संपादन नहीं करता है। एनीमेशन के लिए एसवीजी शब्दार्थ पर निर्भर करता है - जो कि महान नहीं है।

SnapSVG राफेल के शुद्ध SVG संस्करण के रूप में

SnapSVG राफेल का उत्तराधिकारी है। यह केवल एसवीजी सक्षम ब्राउज़रों में समर्थित है और एसवीजी की लगभग सभी विशेषताओं का समर्थन करता है।

निष्कर्ष

यदि आप कुछ त्वरित और आसान कर रहे हैं, तो राफेल एक आसान विकल्प है। यदि आप कुछ अधिक जटिल करने जा रहे हैं, तो मैंने jQuery SVG का उपयोग करना चुना क्योंकि मैं राफेल की तुलना में वास्तविक मार्कअप को काफी आसान बना सकता हूं। और अगर आप नॉन-jQuery समाधान चाहते हैं तो SnapSVG एक अच्छा विकल्प है।


15
राफेलजेएस का प्रलेखन बहुत अच्छा नहीं है, यह सीमित है और आपको सभी जानकारी प्राप्त करने के लिए कभी-कभी एसवीजी या jQuery प्रलेखन में जाना पड़ता है। उस ने कहा, डेमो (स्रोत कोड) के साथ ही मंच और कई उपयोगकर्ताओं के लिए उपलब्ध है, मैं उन उत्तरों को प्राप्त करने का प्रबंधन करता हूं जिनकी मुझे आवश्यकता है।
रोहतक

11
मैंने अभी-अभी राफेल का उपयोग करना शुरू किया है और मैंने पाया है कि मैं एक जावास्क्रिप्ट एपीआई के लिए कुछ बेहतरीन बना हूं, और अधिक विशिष्ट विनिर्देशों के बगल में बहुत स्पष्ट उदाहरणों के साथ
wheresrhys

71
यह मत भूलो कि इंटरनेट एक्सप्लोरर के लिए वीपीएल के लिए राफेलजेएस की संगतता है। यह बहुत बड़ा है क्योंकि SVG पुराने ब्राउज़र पर काम नहीं करता है।
22

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

4
एक और jQuery SVG कॉन है कि प्रोजेक्ट भले ही ओपनऑसर (GPL और MIT) है, लेकिन इसके डेवलपर (संस्करण 1.4.5 अंतिम अद्यतन 28 अप्रैल 2012) द्वारा इसे छोड़ दिया गया लगता है। jquery.svg.dom jQuery 1.8 के साथ कुछ संघर्षों का कारण बनता है। आदर्श रूप से मैं इस परियोजना को संभालने के लिए किसी का इंतजार करूंगा और उम्मीद है कि इसे गीथुब में डाल दूंगा
हॉफमैन

53

पोस्टरिटी के लिए, मैं यह नोट करना चाहूंगा कि मैंने स्वच्छ एपीआई और "मुफ्त" IE समर्थन के कारण राफेल को चुनना समाप्त कर दिया, और यह भी कि क्योंकि सक्रिय विकास आशाजनक लगता है (उदाहरण के लिए इवेंट समर्थन सिर्फ 0.7 में जोड़ा गया था)। हालाँकि, मैं अनुत्तरित प्रश्न छोड़ दूँगा, और मैं अभी भी जावास्क्रिप्ट + SVG पुस्तकालयों का उपयोग करके दूसरों के अनुभवों के बारे में सुनना चाहूंगा।


1
राफेल के लिए अच्छा IE समर्थन महान है। IE में गोल कोनों के साथ वर्ग? ... कोई समस्या नहीं?)
पीटर Ajtai

26

मैं राफेल का बहुत बड़ा प्रशंसक हूं और विकास की गति मजबूत होती दिख रही है (पिछले सप्ताह देर से संस्करण 0.85 जारी किया गया था)। एक और बड़ा प्लस यह है कि इसके विकासकर्ता, दिमित्री बारानोवस्की , वर्तमान में एक राफेल चार्टिंग प्लगइन, g.rapeel पर काम कर रहे हैं , जो अपने आकार को बहुत ही सुंदर बनाने के लिए लग रहा है ( फ्लिकर के शुरुआती संस्करणों से आउटपुट के कुछ नमूने हैं ) ।

हालांकि, एसवीजी लाइब्रेरी मिक्स में एक और संभावित दावेदार को फेंकने के लिए, Google का एसवीजी वेब वास्तव में बहुत आशाजनक लगता है (भले ही मैं फ्लैश का एक बड़ा प्रशंसक नहीं हूं, जो कि गैर-एसवीजी अनुरूप ब्राउज़रों में प्रस्तुत करने के लिए उपयोग करता है)। शायद एक देखने के लिए, विशेष रूप से आगामी एसवीजी ओपन सम्मेलन के साथ


1
यह इस समय राफेल बनाम 1.5.2 है।
16

3
यह ध्यान रखना कोई बड़ी बात नहीं है कि वर्तमान संस्करण 2.1.2 है। यह टिप्पणी कुछ वर्षों में किसी अन्य व्यक्ति द्वारा सुधार प्राप्त करने के लिए प्रतीक्षा की जा रही है ...
Tebe

कुछ साल बाद कोप 'थानेदार नशेल ... अब राफेल v2.2.1 है
नटंगराड

12

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

यदि आपका डिज़ाइन नेस्टेड कोऑर्डिनेट ट्रांसफ़ॉर्म पर निर्भर करता है, तो राफेल आपके लिए नहीं है।


11

ओह राफेल जून से काफी आगे बढ़ गया है। एक नई चार्टिंग लाइब्रेरी है जो इसके साथ काम कर सकती है और ये बहुत ही आकर्षक हैं। राफेल भी पूर्ण SVG पथ सिंटैक्स का समर्थन करता है और वास्तव में उन्नत पथ विधियों को शामिल कर रहा है। मेरी साइट पर 1.2.8+ देखें (बेशर्म प्लग) और फिर वहां से दिमित्री की साइट पर जाएं। http://www.irunmywebsite.com/raphael/raphaelsource.html


6

मुझे लगता है कि यह पूरी तरह से असंबंधित नहीं है लेकिन क्या आपने कैनवास पर विचार किया है? प्रोसेस JS जैसी कोई चीज इसे सरल बना सकती है।


12
मैंने सामान्य रूप से और विशेष रूप से प्रसंस्करण दोनों में कैनवास को देखा है। समस्या यह है कि (जहाँ तक मुझे पता है) एसवीजी के विपरीत ड्रैग एंड ड्रॉप जैसी सुविधाओं के लिए माउस ईवेंट्स को कैनवस पर अलग-अलग मदों में आसानी से संलग्न नहीं किया जा सकता है, जो डोम से पूरी तरह से जुड़ा हुआ है।
ल्यूक डेनिस

1
मैंने कैनवास के साथ व्यापक काम नहीं किया है, लेकिन फ़्लोट - jquery प्लगइन पर एक नज़र है जो चार्ट के लिए कैनवास का उपयोग करता है। यह बहुत अच्छी तरह से mouseclicks संभालती है।
भरणी

4
Mouseclicks हाँ, लेकिन कैनवास में आइटम पर ईवेंट हावी नहीं है। वास्तव में, कैनवस के लिए आप ईवेंट हैंडलर को कैनवस (आईई के कारण) पर नहीं रख सकते हैं, हालांकि आप इसे कैनवास रखने वाले डिव पर रख सकते हैं।
नोसरेडना

3
कैनवास बिटमैप के लिए बहुत अच्छा है, एसवीजी वेक्टर ग्राफिक्स के लिए बहुत अच्छा है। एसवीजी टू स्केल की क्षमता इसके लिए शानदार है। मुझे लगता है कि कैनवस और एसवीजी पूरक तकनीक हैं।
अनातोली जी

कैनवास के लिए माउस घटनाओं के बारे में, Easel.js पर एक नज़र डालें जो आपके लिए यह सब संभालती है।
नील

6

तुम भी svgweb पर एक नज़र रखना चाहिए। यह IE में svg को रेंडर करने के लिए फ्लैश का उपयोग करता है, और वैकल्पिक रूप से अन्य ब्राउज़र पर (उन मामलों में जहां यह ब्राउज़र खुद से अधिक समर्थन करता है)।

http://code.google.com/p/svgweb/


5

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


5

एक जावास्क्रिप्ट शुरुआत के रूप में, मैंने पाया कि रैफेल के नमूने इतने आसान नहीं हैं, मैं http://cancerbero.mbarreneche.com/raphaeltut की सलाह देता हूं , जो कि स्टेप ट्यूटोरियल बाय रियल है।


5

उन लोगों के लिए जो IE6 / IE7 के बारे में परवाह नहीं करते हैं, वही आदमी जिन्होंने राफेल लिखा था विशेष रूप से आधुनिक ब्राउज़रों के लिए एक svg इंजन बनाया: Snap.svg .. उनके पास अच्छे डॉक्स के साथ एक बहुत अच्छी साइट है: http://snapsvg.io

Snap.svg बॉक्स के ठीक बाहर का उपयोग करना आसान नहीं हो सकता है और मौजूदा एसवीजी को हेरफेर / अपडेट कर सकता है या नए उत्पन्न कर सकता है। आप इस सामग्री को पेज के बारे में Snap.io पर पढ़ सकते हैं, लेकिन यहाँ एक त्वरित रन डाउन है:

विपक्ष

  • स्नैप की विशेषताओं का उपयोग करने के लिए आपको पुराने ब्राउज़रों के समर्थन पर पीछे हटना होगा। राफेल IE6 / IE7 जैसे ब्राउज़रों का समर्थन करता है, स्नैप फीचर केवल IE9 और अप, सफारी, क्रोम, फ़ायरफ़ॉक्स और ओपेरा द्वारा समर्थित हैं।

पेशेवरों

  • एसवीजी की पूरी विशेषताओं को लागू करता है जैसे मास्किंग, क्लिपिंग, पैटर्न, पूर्ण ग्रेडिएंट, समूह, और बहुत कुछ।

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

  • एक सीधा, आसान-से-लागू जावास्क्रिप्ट एपीआई का उपयोग करके पूर्ण एनीमेशन समर्थन

  • एसवीजी के तार के साथ काम करता है (उदाहरण के लिए, अजाक्स के माध्यम से लोड की गई एसवीजी फाइलें) वास्तव में उन्हें पहले प्रस्तुत करने के बिना, एक संसाधन कंटेनर या स्प्राइट शीट के समान।

यदि आपकी रुचि हो तो इसे देखें : http://snapsvg.io


3

चूँकि इसका अभी तक यहाँ उल्लेख नहीं किया गया है: आपको भी देख लेना चाहिए Dojox.drawing डालनी चाहिए , जो अच्छी SVG ड्राइंग क्षमताएँ भी प्रदान करता है। यह सुविधाओं का एक बहुत प्रभावशाली सेट है। मैं अभी इसके साथ एक परियोजना शुरू कर रहा हूं, लेकिन यह मुझे लगता है कि यह राफेल और JQuerySVG के लिए बेहतर (कम से कम सुविधाओं के मामले में) है।

इस प्रस्तुति ने मुझे राफेल / JQuerySVG के बजाय इसका उपयोग करने के लिए आश्वस्त किया: http://www.slideshare.net/elazutkin/dojo-gfx-svg-in-the-real-world-2114082

संदर्भ: http://dojotoolkit.org/reference-guide/dojox/index.html

डोजोकैम्पस पर संदर्भ: http://docs.dojocampus.org/dojox/drawing

Dojo (Dojox सहित) डाउनलोड करें: http://dojotoolkit.org/download/



2

मैं राफेलजेएस का उपयोग करना पसंद करता हूं क्योंकि इसमें बेहतरीन क्रॉस-ब्राउजर क्षमताएं हैं। हालांकि, कुछ एसवीजी और वीएमएल प्रभाव राफेलजेएस (जटिल ग्रेडिएंट ...) के साथ प्राप्त नहीं किए जा सकते हैं।

Google ने IE में SVG समर्थन को सक्षम करने के लिए अपनी खुद की एक लाइब्रेरी भी विकसित की है: http://svgweb.googlecode.com/files/svgweb-2009-08-20-B.zip


0

यदि आपको VML और IE8 समर्थन की आवश्यकता नहीं है, तो Canvas (उदाहरण के लिए PaperJS) का उपयोग करें। विंडोज 7 के लिए नवीनतम IE10 डेमो देखें। उनके पास कैनवस में अद्भुत एनिमेशन हैं। एसवीजी उनके करीब कुछ भी करने में सक्षम नहीं है। कुल मिलाकर कैनवस सभी मोबाइल ब्राउज़रों पर उपलब्ध है। SVG Android 2.0- 2.3 के शुरुआती संस्करणों में काम नहीं कर रहा है (जैसा कि मुझे पता है)

हाँ, कैनवस स्केलेबल नहीं है, लेकिन यह इतनी तेज़ है कि आप पूरे कैनवस को तेज़ी से फिर से खोल सकते हैं, फिर व्यू पोर्ट स्क्रॉल करने में सक्षम ब्राउज़र।

मेरे दृष्टिकोण से Microsoft के अनुकूलन से कैनवस को नियमित GDI इंजन के रूप में उपयोग करने और ग्राफिक्स अनुप्रयोगों को लागू करने का साधन मिलता है जैसे हम उन्हें अभी विंडोज के लिए करते हैं।


1
शुद्ध ग्राफिक्स रेंडरिंग के लिए, मैं बिल्कुल सहमत हूं। एसवीजी / वीएमएल की पेशकश करने वाली एक चीज जो कैनवस नहीं है एक डोम और एक घटना पदानुक्रम है, क्योंकि खींचे गए तत्व कच्चे बिटमैप के बजाय पूर्ण डोम ऑब्जेक्ट हैं। कैनवस के साथ, X / Y क्लिक कोऑर्डर्स सबसे अच्छे हैं जो की जा सकते हैं। किसी भी दर पर, परियोजना लंबे समय से अधिक है, इसलिए यह वर्तमान में प्रासंगिक नहीं है, लेकिन आपके उत्तर के लिए धन्यवाद। :)
ल्यूक डेनिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.