2009-05-14 8 views
5

इंजेक्शन लगाने के एक सवाल पूछने, एक चर्चा बनाने नहीं की StackOverflow के सुझाव के साथ पालन करने की कोशिश कर, हमें इन दोनों तरीकों का उपयोग करने वाले HTTPAsyncRquest यह ताज़ा बिना एक वेब पेज को अद्यतन करने पर विचार करते हैं) AsyncRequest द्वारा लौटा गया डेटा परिणामस्वरूप एचटीएमएल बनाने के लिए पार्स/व्याख्या किया गया है जो पेज उदाहरण अपडेट करता है JSON :: parseAndExecute (returnedData); // बस एक उदाहरणअजाक्स:</p> <p>1: भवन एचटीएमएल बनाम एचटीएमएल

2) AsyncRequest द्वारा लौटा गया डेटा कच्चे जेस्क्रिप्ट है जिसे पृष्ठ निष्पादित और अद्यतन किया जाता है। उदा। सादा पुराना: eval (लौटाडेटा); // हम वापस आ गए हैंडेटा दुर्भावनापूर्ण कोड नहीं है

अकादमिक/वरीयताओं के मुद्दों को रद्द करने के लिए, मान लीजिए कि हम सर्वर और क्लाइंट दोनों प्रोग्राम करने के लिए सटीक समान ढांचे का उपयोग करते हैं, केवल अंतर यह है कि बनाने के लिए एक विकल्प/ध्वज है यह एक JSON या कच्चे जेस्क्रिप्ट थूक।

उस परिदृश्य में, क्या तकनीकी कारण हैं जिनके लिए किसी को भी प्राथमिकता दी जानी चाहिए?

मैं यह पूछता हूं क्योंकि कच्चे जेएससीआरआईपीटी, ज्यादातर मामलों में, तेजी से और अधिक लचीला होना चाहिए, लेकिन अधिकांश ढांचे को मैंने जेएससीआरआईपीटी वापस नहीं किया है, बल्कि बदले में डेटा जेएससीआरआईपीटी द्वारा व्याख्या किया गया है।

(बस स्पष्ट करने के लिए: मैं पूछ रहा हूँ यह छोटा होता है तेजी से सुरक्षा जोखिम देखते हैं संगतता जोखिम???)

पहली पोस्ट stackoverflow पर, तु!

+0

आपके लिए पहला अपवित्र, आप! अच्छा प्रश्न। :-) – Cerebrus

उत्तर

1

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

हम अपने अजाक्स इंजन के लिए जेएसओएन और एचटीएमएल (सभी व्यावहारिक चिंताओं के लिए आंतरिक HTML) के संयोजन का उपयोग कर (रा-अजाक्स) हैं। हम अपने विगेट्स पर गुणों को बदलने के लिए JSON का उपयोग कर रहे हैं, जबकि हम विजेट पर प्रारंभिक प्रतिपादन (या पूर्ण अपडेट) पर आंतरिक HTML का उपयोग कर रहे हैं।

+0

फ़ायरफ़ॉक्स 3 एक JSON पार्सर के साथ आता है। –

1

@Thomas हैनसेन:

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

आप पहले विकल्प (जेएसओएन) को भी पसंद कर सकते हैं क्योंकि आप किसी भी तरह से अन्य जीयूआई कॉलबैक के जवाब में डेटा को ट्रांसफॉर्म/फ़िल्टर कर रहे हैं, और इसके लिए सर्वर पर भरोसा नहीं करना चाहते हैं।

+0

खैर, ज्यादातर लोग "पार्सिंग" के बारे में बात करते समय आम तौर पर एक्सएमएल कर रहे हैं - जो स्पष्ट रूप से जेएसओएन से बड़ा तरीका है ... –

+0

यह निश्चित रूप से सच है। कोण ब्रैकेट कर केवल किसी भी नेटवर्क अनुरोध के लिए बहुत अधिक ओवरहेड जोड़ देगा –

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