दिलचस्प पोस्ट
कैसे x 86 अनुसूचित, ठीक हैं? SQL क्वेरी से LINQ से SQL प्राप्त करें? `$ Q` के साथ काजल निष्पादन आदेश पायथन क्यों नहीं मेरे utf-8 एन्कोडेड स्रोत फ़ाइल को पहचानता है? जेएसएएन के साथ एचटीपी 415 असमर्थित मीडिया प्रकार त्रुटि स्ट्रीम से वीडियो चलाने के लिए मीडियाएलेमेंट का उपयोग करना पायथन का इस्तेमाल करते हुए विंडोज ड्राइवों को मैप करने का सबसे अच्छा तरीका क्या है? क्या मैं इकाई ढाँचा कोड में वैश्विक मानचित्रण नियमों को पहले निर्दिष्ट कर सकता हूं? बिग हे, आप इसका अनुमान / अनुमान कैसे लगा सकते हैं? फ़्लोट का उपयोग "अतिभारित कार्य करने के लिए कॉल अस्पष्ट" त्रुटि देता है कहाँ है fn.toggle (हैंडलर (eventObject), हैंडलर (eventObject) …) चला गया? गतिशील रूप से स्रोत के साथ स्क्रिप्ट टैग जोड़ें जिसमें दस्तावेज़ शामिल हो सकता है जावास्क्रिप्ट regexp संख्या केवल चेक करें ऐप्लिकेशन पर दिखाई देने वाले बटन क्या गलत है? जावा में पूर्णांक में दोहरे कास्ट करें

क्लाइंट-साइड और सर्वर-साइड प्रोग्रामिंग के बीच अंतर क्या है?

मेरे पास यह कोड है:

<script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script> 

यह मेरी पाठ फ़ाइल में "बार" क्यों नहीं लिखता, लेकिन "42" अलर्ट क्यों करता है?


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

Solutions Collecting From Web of "क्लाइंट-साइड और सर्वर-साइड प्रोग्रामिंग के बीच अंतर क्या है?"

आपका कोड दो पूरी तरह से अलग भागों, सर्वर साइड और क्लाइंट साइड में विभाजित है।

  | ----------> HTTP request | +--------------+ | +--------------+ | | | | | | browser | | | web server | | (JavaScript) | | | (PHP etc.) | | | | | | +--------------+ | +--------------+ | client side | server side | <---------- HTML, CSS, JavaScript | 

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

उदाहरण कोड इस तरह कार्यान्वित करता है:

 <script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script> 

चरण 1, PHP, <?php ?> टैग्स के बीच सभी कोड को कार्यान्वित करता है परिणाम यह है:

 <script type="text/javascript"> var foo = 'bar'; var baz = 42; alert(baz); </script> 

file_put_contents कॉल का परिणाम कुछ भी नहीं हुआ, यह फ़ाइल में "+ foo +" लिखा था <?php echo 42; ?> <?php echo 42; ?> कॉल के परिणामस्वरूप "42" आउटपुट आया, जो अब उस जगह पर है जहां उस कोड का उपयोग किया गया था

यह परिणामी HTML / JavaScript कोड अब ग्राहक को भेजा जाता है, जहां इसका मूल्यांकन किया जाता है। alert कॉल काम करती है, जबकि foo चर का उपयोग कहीं भी नहीं किया जाता है।

क्लाइंट किसी भी जावास्क्रिप्ट निष्पादित करने से पहले सभी PHP कोड सर्वर पर निष्पादित होता है। जवाब में कोई भी PHP कोड नहीं छोड़ा गया है, ताकि जावास्क्रिप्ट के साथ इंटरैक्ट किया जा सके।

कुछ PHP कोड कॉल करने के लिए, क्लाइंट को सर्वर पर एक नया HTTP अनुरोध भेजना होगा। यह तीन संभावित तरीकों में से एक का उपयोग कर सकते हैं:

  1. एक लिंक, जो ब्राउज़र को एक नया पृष्ठ लोड करने का कारण बनता है
  2. एक फॉर्म सबमिशन, जो सर्वर को डेटा प्रस्तुत करता है और एक नया पृष्ठ लोड करता है।
  3. एक AJAX अनुरोध, जो एक जावास्क्रिप्ट तकनीक है जो सर्वर को नियमित HTTP अनुरोध करने के लिए (जैसे कि 1. और 2.), लेकिन वर्तमान पृष्ठ को छोड़ने के बिना।

इन पद्धतियों को अधिक विस्तृत रूप से विस्तार करने के लिए यहां एक सवाल है

आप ब्राउज़र को एक नया पृष्ठ window.location का उपयोग करके खोलने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं या एक फॉर्म सबमिट कर सकते हैं, संभावनाओं का अनुकरण 1. और 2

यह निर्धारित करने के लिए कि जावास्क्रिप्ट कोड में PHP कोड क्यों काम नहीं करता है, हमें यह समझने की आवश्यकता है कि क्लाइंट साइड और सर्वर साइड भाषा क्या है और वे कैसे काम करते हैं।

सर्वर-साइड भाषाओं (PHP आदि) : वे डेटाबेस से रिकॉर्ड पुनः प्राप्त करते हैं, स्टेटलेस HTTP कनेक्शन पर राज्य को बनाए रखती हैं, और बहुत सारी चीज़ें करती हैं जिन्हें सुरक्षा की आवश्यकता होती है वे सर्वर पर रहते हैं, इन प्रोग्रामों के पास कभी उपयोगकर्ता का स्रोत कोड नहीं होता है

Wikipedia_http: //en.wikipedia.org/wiki/File से छवि: Scheme_dynamic_page_en.svg छवि अटर

तो आप आसानी से देख सकते हैं कि सर्वर साइड भाषा को HTTP अनुरोध संभाल और उसे क्रियान्वित किया जाता है और @ डीसेज़ ने कहा है कि PHP को सर्वर पर निष्पादित किया जाता है और कुछ एचटीएमएल और शायद जावास्क्रिप्ट कोड को आउटपुट करता है जिसे एचटीएमएल की व्याख्या और जावास्क्रिप्ट की प्रतिक्रिया के रूप में भेजा जाता है। निष्पादित किया जाता है।

दूसरी तरफ क्लाइंट साइड लैंग्वेज (जैसे जावास्क्रिप्ट) ब्राउज़र पर रहता है और ब्राउज़र पर चलता रहता है, क्लाइंट-साइड स्क्रीप्टिंग आमतौर पर वेब पर कंप्यूटर प्रोग्रामों की श्रेणी को संदर्भित करती है, जो कि क्लाइंट-साइड को निष्पादित की जाती है, उपयोगकर्ता के वेब ब्राउज़र द्वारा सर्वर-साइड की

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

इसलिए जब आप सर्वर पर एक HTTP अनुरोध करते हैं तो सर्वर पहले PHP फ़ाइल को सावधानी से पढ़ता है, यह देखने के लिए कि क्या कोई कार्य है जो निष्पादित होने और क्लाइंट की तरफ जवाब देने और फिर @deceze के रूप में भेजा जाता है * एक बार जब PHP प्रतिसाद को आउटपुट कर चुका है , स्क्रिप्ट समाप्त हो जाती है और सर्वर पर कुछ भी नहीं होगा जब तक कि एक नया HTTP अनुरोध नहीं आता। *

सचित्र प्रदर्शन

छवि स्रोत

तो मुझे PHP पर कॉल करने की आवश्यकता है तो मैं क्या कर सकता हूं? यह निर्भर करता है कि आपको इसे कैसे करना चाहिए: या तो पृष्ठ पुनः लोड करके या एक AJAX कॉल का उपयोग करके।

  1. आप पृष्ठ पुनः लोड करके और HTTP अनुरोध भेज सकते हैं
  2. आप जावास्क्रिप्ट के साथ AJAX कॉल कर सकते हैं और इस पृष्ठ को पुनः लोड करने की आवश्यकता नहीं है

अच्छा पढ़ा:

  1. विकिपीडिया: सर्वर-पक्ष स्क्रिप्टिंग
  2. विकिपीडिया: क्लाइंट-साइड स्क्रिप्टिंग
  3. मदारा उचीः क्लाइंट साइड और सर्वर साइड प्रोग्रामिंग के बीच अंतर

आपका जावास्क्रिप्ट क्लाइंट पर निष्पादित होगा, सर्वर पर नहीं। इसका अर्थ है कि foo का सर्वर साइड पर मूल्यांकन नहीं किया जाता है और इसलिए इसका मान सर्वर पर फ़ाइल में नहीं लिखा जा सकता है।

इस प्रक्रिया के बारे में सोचने का सबसे अच्छा तरीका है जैसे कि आप एक पाठ फ़ाइल को गतिशील रूप से जनरेट कर रहे हैं जो पाठ आप पैदा कर रहे हैं वह केवल निष्पादन योग्य कोड बन जाता है, जब ब्राउजर इसकी व्याख्या करता है। केवल आपके द्वारा <?php टैग के बीच क्या रखा जाता है, सर्वर पर मूल्यांकन किया जाता है

वैसे, HTML या जावास्क्रिप्ट में PHP तर्क के यादृच्छिक टुकड़ों को एम्बेड करने की आदत को गंभीरता से जटिल कोड हो सकता है। मैं दर्दनाक अनुभव से बात करता हूँ

वेब अनुप्रयोग में हर कार्य अनुरोध और प्रतिक्रिया के तरीके में निष्पादित होता है।

क्लाइंट ओर प्रोग्रामिंग जावा स्क्रिप्ट और उसके फ्रेमवर्क के साथ HTML कोड के साथ है, इंटरनेट एक्सप्लोरर, मोज़िला, क्रोम ब्राउज़र में लाइब्रेरीज़ कार्यान्वित करता है। जावा परिदृश्य सर्वर साइड प्रोग्रामिंग सर्लेट्स में टोमकैट, वेब-लॉजिक, जे बॉस, वेबस्पर्श सेवर में कार्यान्वित होता है