2010-04-27 8 views
5

पर जावास्क्रिप्ट निष्पादित करें मेरे पास निम्न स्थिति है। एक जटिल वेबसाइट बनाने के लिए एक ग्राहक jQuery के साथ जावास्क्रिप्ट का उपयोग करता है। हम निम्नलिखित कारणों के लिए सर्वर (आईआईएस) पर जावास्क्रिप्ट और jQuery का उपयोग करना चाहेंगे:आईआईएस सर्वर

  1. कौशल हस्तांतरण - हम सर्वर पर जावास्क्रिप्ट और jQuery का उपयोग करने और जैसे वीबी स्क्रिप्ट का उपयोग करने के लिए नहीं करना चाहते हैं।/क्लासिक एएसपी। इस वजह से नेट फ्रेमवर्क/जावा इत्यादि से इंकार कर दिया गया है।

  2. खोज/पहुंच के लिए बेहतर विकल्प। हम एक टेम्पलेटिंग सिस्टम के रूप में jQuery का उपयोग करने में सक्षम होना चाहते हैं, लेकिन यह खोज इंजन और जेएस के साथ उपयोगकर्ताओं के लिए व्यवहार्य नहीं है - जब तक हम सर्वर पर इस कोड को चुनिंदा रूप से चला नहीं सकते।

आईआईएस और विंडोज सर्वर में महत्वपूर्ण निवेश है, इसलिए यह एक विकल्प नहीं है।

मुझे पता है कि आप विंडोज स्क्रिप्ट होस्ट का उपयोग कर आईआईएस पर जेस्क्रिप्ट चला सकते हैं, लेकिन इसके बारे में स्केलेबिलिटी और प्रक्रिया के बारे में अनिश्चित हूं। मुझे यह भी अनिश्चितता है कि क्या इसे डीओएम तक पहुंच होगी।

यहां एक आरेख है जो उम्मीदपूर्वक स्थिति को समझाता है। मैं सोच रहा था कि किसी ने भी ऐसा कुछ किया है?

संपादित करें: मैं वेब आर्किटेक्चर पर आलोचक की तलाश नहीं कर रहा हूं, मैं बस यह जानना चाहता हूं कि जावास्क्रिप्ट का उपयोग करके क्लाइंट को भेजे जाने से पहले किसी पृष्ठ के डीओएम में हेरफेर करने के लिए कोई विकल्प है या नहीं। Jaxer एक ऐसा उत्पाद है (आईआईएस नहीं) धन्यवाद।

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/1991822/is-there-a-server-side-javascript-engine-for-iis – Residuum

+0

@Residuum - धन्यवाद - मैंने यह प्रश्न देखा लेकिन वास्तव में यह नहीं जवाब दें कि ब्राउज़र में मार्कअप भेजे जाने से पहले जेस्क्रिप्ट डीओएम में कैसे बदलाव कर सकता है। जिस तरह से मैं इसे समझता हूं, जेस्क्रिप्ट का उपयोग केवल उस परिदृश्य में मार्कअप उत्पन्न करने के लिए किया जा सकता है। –

+0

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

उत्तर

5

bringing the browser to the server, Rhino, और Use Microsoft's IIS as a Java servlet engine पर एक नज़र डालें।

पहला लिंक जॉन रेसिग (jQuery के निर्माता) ब्लॉग से है।

अद्यतन अगस्त 2 2011

Node.js is coming to Windows.

+0

+1 पहला लिंक दिलचस्प पढ़ने – oedo

+0

आपको बहुत धन्यवाद, यह वही है जो मैं ढूंढ रहा था। हालांकि यह प्रदर्शन दृष्टिकोण से बहुत अच्छा नहीं हो सकता है, यह एक शुरुआत है। मुझे निश्चित रूप से लगता है कि जॉन रिसिग विचारों के साथ संयुक्त डीएलआर के आधार पर .net जावास्क्रिप्ट सर्वर साइड कार्यान्वयन का अवसर है। मैं गिट/कोडप्लेक्स पर एक प्रोजेक्ट शुरू कर सकता हूं। –

+0

मीठा। हमें सूचित करते रहना। मुझे निश्चित रूप से दिलचस्पी है। –

0

मुझे लगता है कि यह मुख्य रूप से एक ब्राउज़र आधारित स्क्रिप्ट है, तो शायद आप वीबी या .NET के आधार पर प्रौद्योगिकी का उपयोग कर प्रदर्शन या टेम्पलेट्स से HTML उत्पन्न करने के लिए की बेहतर हैं। मुझे यकीन है कि वहां हैं क्योंकि जावा दुनिया में इनमें से कुछ (जैसे वेग) हैं। इसके बाद आप क्लाइंट साइड कार्यक्षमता और उपयोगिता को बनाने या जोड़ने के लिए jQuery का उपयोग करेंगे ताकि यह वेबसाइट की तुलना में अधिक उपयोगी हो सके।

+0

उत्तर के लिए धन्यवाद। मैं यह देखने की कोशिश कर रहा हूं कि क्लाइंट प्रोग्रामिंग मॉडल का उपयोग करना संभव है कि सीएसएस और फ़ोटोशॉप केंद्रित डेवलपर्स का उपयोग आईआईएस पर आधारित सर्वर वातावरण में किया जाता है। –

1

जेस्क्रिप्ट आईआईएस पर एएसपी नामक किसी चीज़ के माध्यम से चलता है।
सक्रिय सर्वर पेज।
यह पहली बार 1 99 6 में उपलब्ध था।

अंततः एएसपी.नेट को उत्तराधिकारी के रूप में पेश किया गया था। लेकिन एएसपी अभी भी समर्थित है।

हालांकि, HTML पृष्ठ के लिए कोई डोम नहीं है।

आपको अपने आर्किटेक्चर पर थोड़ा पुनर्विचार करने की आवश्यकता हो सकती है।

+0

धन्यवाद। मैं एएसपी, एएसपीनेट एट अल समझता हूँ। मैं सर्वर पर वही जावास्क्रिप्ट प्रोग्रामिंग मॉडल लागू करना चाहता हूं जैसा कि मैं क्लाइंट पर करता हूं। तो प्रौद्योगिकी को आदर्श वास्तुकला में फिट करने की कोशिश करने का यह मामला है। –

+1

कारण मैंने इंगित किया कि जेएसपी एएसपी में चलता है, आपके कथन के कारण है, * मुझे पता है कि आप विंडोज स्क्रिप्ट होस्ट का उपयोग कर आईआईएस पर जेस्क्रिप्ट चला सकते हैं, लेकिन ... *। उस वक्तव्य में प्राथमिक तकनीक का उल्लेख नहीं किया गया जिसका उपयोग आईआईएस पर जेस्क्रिप्ट चलाने के लिए किया जाएगा। – Cheeso

0

वास्तव में क्या आप से

मतलब है "एक ग्राहक jQuery के साथ जावास्क्रिप्ट का उपयोग करता है एक जटिल वेबसाइट बनाने के लिए"

आधा jQuery की बात यह करने के लिए डेवलपर के लिए आसान बनाने के लिए है डीओएम में हेरफेर करें, और इसलिए एक वेबसाइट पर इंटरैक्टिव एन्हांसमेंट जोड़ें। सर्वर पर जावास्क्रिप्ट चलाकर और केवल HTML को प्रतिपादित करके आप सर्वर के लिए एक राउंड ट्रिप किए बिना इन एन्हांसमेंट्स को जोड़ने की क्षमता खो देंगे (वेबफॉर्म पोस्टबैक मॉडल सोचें ... यूघ)।

अब यदि आप वास्तव में क्या मतलब है कि ग्राहक jQuery पर आधारित साइट बिल्डर का उपयोग करता है, तो उस टूल आउटपुट फ्लैट HTML को पहले स्थान पर क्यों नहीं मिला है?

+0

धन्यवाद। मैं jQuery के उपयोग को बहुत अच्छी तरह समझता हूं। इंट्रानेट/एक्स्ट्रानेट व्यवसाय अनुप्रयोग के विपरीत यह एक बड़ी निर्माता की वेबसाइट है, इसलिए तर्क टेम्पलेटिंग और एनीमेशन के आसपास आधारित है। –

+0

प्रतिक्रिया के लिए फिर से धन्यवाद। क्या आप मानेंगे कि यह jQuery के टन के साथ फ्लैट एचटीएमएल है। और यह

2

सर्वर पर क्लाइंट जेएस का पुन: उपयोग करने का विचार आकर्षक लग सकता है, लेकिन मुझे यकीन नहीं है कि jQuery स्वयं सर्वर वातावरण में चलाने के लिए तैयार होगा।

आपको window, document, self, location, etc. प्रारंभ करके किसी भी तरह jQuery के लिए वैश्विक संदर्भ को परिभाषित करने की आवश्यकता होगी। मुझे यकीन नहीं है कि यह करने योग्य है।

इसके अलावा, जैसा कि चीसो ने उल्लेख किया है, सक्रिय सर्वर पेज एक बहुत पुरानी तकनीक है, इसे सदी की शुरुआत में माइक्रोसॉफ्ट द्वारा एएसपी.Net के साथ बदल दिया गया था। मैं एएसपी 3.0 का उपयोग करके एक वर्ष से अधिक समय तक एक विरासत प्रणाली बनाए रखता था और वह दर्द था। सबसे अद्भुत शगल डिबगिंग गया था: आप शायद ही आज इस प्रयोजन के लिए कुछ भी मिल जाएगा और आईआईएस लॉग में की तरह सुंदर त्रुटियों decript करना होगा:

त्रुटि '800a9c68'
आवेदन से परिभाषित या वस्तु से परिभाषित त्रुटि

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

पीएस मैं इस तरह से आगे बढ़ने की सिफारिश नहीं करता। बहुत ही टेम्पलेटिंग फ्रेमवर्क हैं जो एचटीएमएल और जावास्क्रिप्ट लिखने वालों से परिचित हैं।

+0

धन्यवाद। मैं इन प्रौद्योगिकियों से बहुत परिचित हूं। मैं ब्राउज़र पर भेजे जाने से पहले डीओएम पर jQuery निष्पादित करने में सक्षम होने में एक निश्चित लाभ देख सकता हूं। –

1

मैं केवल व्यवहार्य समाधान आप जाने के लिए तैयार के पास कहीं भी मिल जावा के सामने आईआईएस डाल शामिल होने की संभावना हो लगता है। दो ब्राउज़र की तरह वातावरण मुझे पता कर रहा हूँ जावा के लिए कोडित के होते हैं:

1) पर्यावरण-js (http://groups.google.com/group/envjs और http://github.com/thatcher/env-js देखें) मेरा मानना ​​है कि यह एक jQuery के जॉन Resig से योगदान है और jQuery परीक्षण के साथ रखा गया था/दिमाग में समर्थन

2) HTMLUnit (http://htmlunit.sourceforge.net/ देखें) यह एक पुराना है, और मूल रूप से jQuery के आसपास कल्पना नहीं किया गया था, लेकिन jQuery के परीक्षण सूट को सफलतापूर्वक चलाने के लिए जंगली में रिपोर्टें हैं (http://daniel.gredler.net/2007/08/08/htmlunit-taming-jquery/)।

यदि आप कुछ शुद्ध-आईआईएस/एमएस चाहते हैं, तो मुझे लगता है कि विंडोजस्क्रिप्ट होस्ट और/या अर्ध-त्याग किए गए जेस्क्रिप्ट.नेट जैसी कुछ अवलोकन शायद बंदरगाह के साथ आने के करीब है (जिसे आपको शायद शुरू करना होगा) Env-js या HTMLUnit जैसे कुछ।

इसके अलावा, मैं नहीं जानता कि यदि आप सर्वर साइड जावास्क्रिप्ट समाधान के विकिपीडिया सूची को देखा है:

http://en.wikipedia.org/wiki/Server-side_JavaScript

अंत में ...आप शायद किसी भी भाषा में एक सेवा योग्य jQuery जैसी लाइब्रेरी लिख सकते हैं जिसमें पहले से ही किसी प्रकार की डोम लाइब्रेरी और प्रथम श्रेणी के फ़ंक्शन हैं (या, eval सुविधा में विफल)। देखें, उदाहरण के लिए पर्ल के लिए PQuery (http://metacpan.org/pod/pQuery)। यह आपको दस्तावेजों में हेरफेर करने की jQuery शैली का लाभ प्राप्त करेगा। कौशल हस्तांतरण बहुत बढ़िया है और जावास्क्रिप्ट में बहुत अच्छी सुविधाओं का एक अद्भुत संगम है, लेकिन दूसरी तरफ, डेवलपर्स जो कई भाषाओं को सीखने के लिए पर्याप्त देखभाल करते हैं, वे भी महान हैं, और जेएस वहां एकमात्र अच्छी भाषा नहीं है।

+0

एक और बात जो मैं जोड़ना भूल गया: अगर आपको कोई जवाब नहीं मिलता है तो आप यहां से संतुष्ट हैं, तो आप सामान्य जेएस Google समूह (http://groups.google) को आजमा सकते हैं। कॉम/समूह/कॉमनज /)। मुझे लगता है कि मैंने आपको जो कुछ बताया है, उससे आपको सुनने की संभावना है, लेकिन यदि आप आईआईएस के लिए समूह की खोज करते हैं, तो कम से कम एक चर्चा होती है जहां लोगों ने संक्षेप में उल्लेख किया है कि वे विंडोज स्क्रिप्ट होस्ट और आईआईएस पर विचार कर रहे थे। –

+0

+1 प्रतिक्रिया के लिए बहुत धन्यवाद। –

0

इस technology पर एक नज़र डालें। आप सर्वर पर, क्लाइंट या दोनों पर चलाने के लिए स्क्रिप्ट का आह्वान कर सकते हैं। इसके अलावा, यह वास्तव में सर्वर पर फ़ायरफ़ॉक्स इंजन लागू करता है। इस पर एक नज़र मारो।

Aptana's Jaxer अब तक का पहला AJAX वेब सर्वर है। मैंने अभी तक कोशिश नहीं की है, लेकिन मैं करूँगा। आशाजनक और बहुत शक्तिशाली लग रहा है।