2009-09-19 7 views
7

मैं नहींक्लासिक एएसपी में <% %> और <script language = "vbscript" runat = "server"> के बीच क्या अंतर है?

अब तक अब वेब पर ज्यादा प्रलेखन मिल सकता है, स्पष्ट अंतर होने के लिए आप मिश्रण एचटीएमएल और VBScript "स्क्रिप्ट" टैग

उदाहरण के लिए

का उपयोग कर नहीं कर सकते कि लगता है, यह ठीक है

 
<% public sub display_literal() %> 
    literal 
<% end sub %> 

लेकिन स्क्रिप्ट टैग के साथ आपको चाहिए

 

<script language="vbscript" runat="server"> 
public sub display_literal2() 
    response.write "literal2</br>" 
end sub 
</script> 
इस पृष्ठ पर

+०१२३५१६४१०६

http://www.newobjects.com/pages/ndl/alp/asp-structure.htm

यह कहना है कि

क्लासिक एएसपी में स्क्रिप्ट पेज के लिए डिफ़ॉल्ट स्क्रिप्ट भाषा में लिखे गए हैं (अर्थात <%%> टैग के लिए धारित भाषा) दूसरी निष्पादित की गई है - उदा। <%% में सभी स्क्रिप्ट कोड> सभी < SCRIPT RUNAT = SERVER ...> स्क्रिप्ट के बाद टैग प्रारंभ किया गया है।

लेकिन मैं परीक्षण की एक जोड़ी बना दिया है और यह पुष्टि नहीं कर सके ...

< का उपयोग कर कि मैं क्योंकि मैं एक स्क्रिप्ट था पूछ रहा हूँ (मैं अभी हाथ में नहीं है) %%> ने मुझे एक त्रुटि दी, इसे < स्क्रिप्ट में बदल दिया> टैग ने समस्या हल की, लेकिन मुझे यह जानना है कि क्यों ....

वैसे भी, मुझे लगता है कि हमें < स्क्रिप्ट> टैग का उपयोग करना चाहिए कार्य और प्रक्रियाओं को <%%> टैग से बुलाया जाना है ... सही?

+0

मैं इस धारणा के तहत था कि उन्हें वास्तव में मिश्रित नहीं किया जाना चाहिए। – brianary

उत्तर

10

सबसे पहले आपको यह समझने की आवश्यकता है कि सर्वर-साइड script टैग के तरीके में एक अंतर है, इस पर निर्भर करता है कि निर्दिष्ट भाषा पृष्ठ के लिए डिफ़ॉल्ट भाषा के समान है या नहीं।

आदेश यह है: -

  1. भागो <script runat="server" टैग की सभी स्क्रिप्ट जहां निर्दिष्ट भाषा डिफ़ॉल्ट भाषा से मेल नहीं खाता। ये दस्तावेज आदेश में निष्पादित हैं।
  2. डिफ़ॉल्ट स्क्रिप्ट चलाएं। इसका अर्थ यह है कि पृष्ठ में स्थैतिक सामग्री है (runat="server" टैग्स में या <% %> के अंदर) और <% %> में किसी हस्तक्षेप कोड को स्पष्ट रूप से दस्तावेज़ आदेश में स्पष्ट रूप से प्रतिक्रिया देने के लिए प्रस्तुत किया गया है।
  3. <script runat="server" टैग में मिले वैश्विक स्तर पर कोई भी कोड चलाएं जहां भाषा डिफ़ॉल्ट स्क्रिप्ट भाषा से मेल खाती है।

ध्यान दें कि सभी स्क्रिप्ट चरण 1 को निष्पादित करने से पहले प्रारंभिक पार्स है, इसलिए चरण 3 में चलने वाली स्क्रिप्ट द्वारा परिभाषित किए जा सकने वाले किसी भी फ़ंक्शन चरण 1 से कॉल करने के लिए उपलब्ध होंगे।

1

मैं सिर्फ इस मामले पर एक मुद्दा मिला है और, व्यावहारिक उद्देश्यों के लिए, <%% के अंदर कोड > टैग < स्क्रिप्ट runat = "सर्वर" > </लिपि > अंदर कोड से पहले निष्पादित करता है।

कार्यों और प्रक्रियाओं की घोषणा लगता नहीं रास्ता आईआईएस क्लासिक एएसपी टैग समझता में इस अंतर से प्रभावित होने - कम से कम के रूप में मैं "Server.Execute" के साथ सशर्त कोड लोड हो रहा है प्रयोग नहीं करते।

मेरा सर्वर माइक्रोसॉफ्ट-आईआईएस/5.1 को अनुरोध के रूप में चलाता है। सर्वरवेरीबल्स ("SERVER_SOFTWARE")।

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