ما هو الفرق بين <٪٪> و <لغة البرنامج النصي = "VBScript" RunAt = "Server"> في ASP الكلاسيكي؟

StackOverflow https://stackoverflow.com/questions/1447822

سؤال

لم أستطع العثور على الكثير من الوثائق على الويب

حتى الآن، يبدو أن الفرق الواضح هو أنه لا يمكنك مزج HTML و VBScript باستخدام علامة "البرنامج النصي"

على سبيل المثال، هذا جيد

<٪ Public Sub Class_literal ()٪> حرفيا <٪ نهاية نهاية٪>

ولكن مع علامة البرنامج النصي يجب عليك

u003Cscript language="vbscript" runat="server">npublic sub display_literal2()n    response.write "literal2u003C/br>"nend subnu003C/script>

على هذه الصفحة

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

هذا ما تقوله

في Classic ASP البرنامج النصي مكتوب في لغة البرنامج النصي الافتراضي للصفحة (أي اللغة المفترضة للعلامات <٪>) تنفيذها ثانية - مثل جميع علامات البرنامج النصي في <٪٪> تتم تهيئة العلامات بعد كل شيءu003CSCRIPT RUNAT=SERVER ...> scripts.

لكنني قدمت بعض الاختبارات ولم أتمكن من التحقق من ذلك ...

أنا أسأل لأنني كان لدي برنامج نصي (ليس لدي ذلك في متناول اليد الآن) الذي استخدمني <٪٪> خطأ، وتغييره إلىu003Cscript> tag solved the problem, but I'd like to know why....

على أي حال، أعتقد أننا يجب أن نستخدمu003Cscript> tag for functions and procedures that are to be called from u003C% %> tags... right?

هل كانت مفيدة؟

المحلول

أولا، تحتاج إلى فهم أن هناك اختلافا في جانب جانب الخادم script يتم التعامل مع العلامات اعتمادا على ما إذا كانت اللغة المحددة هي نفس اللغة الافتراضية للصفحة.

الترتيب هو هذا: -

  1. تشغيل جميع البرامج النصية في <script runat="server" العلامات حيث اللغة المحددة لا تتطابق مع اللغة الافتراضية. يتم تنفيذ هذه في ترتيب المستندات.
  2. قم بتشغيل البرنامج النصي الافتراضي. وهذا يعني أداء الضمني يكتب إلى الاستجابة حيث يوجد محتوى ثابت في الصفحة (الأشياء غير الموجودة runat="server" العلامات أو داخل <% %>) وأي رمز التدخل في <% %> مرة أخرى في أمر الوثائق بوضوح.
  3. قم بتشغيل أي رمز على المستوى العالمي الموجود في <script runat="server" العلامات حيث يطابق اللغة لغة البرنامج النصي الافتراضي.

لاحظ أن جميع البرنامج النصي لديه تحليل مبدئي قبل تنفيذ المرحلة 1، وبالتالي فإن أي وظائف قد يتم تعريفها بواسطة البرامج النصية تعمل في المرحلة 3 ستكون متاحة للاتصال من المرحلة الأولى.

نصائح أخرى

لقد كان لدي مشكلة في هذه المسألة، ولأغراض عملية، رمز داخل <٪٪> العلامات تنفيذ قبل رمز الداخلu003Cscript runat="server"> u003C/script>وبعد

يبدو إعلان الوظائف والإجراءات ليس تتأثر هذا الاختلاف في الطريقة التي يفهم فيها IIS علامات ASP الكلاسيكية - على الأقل لأنني لا أستخدم تحميل التعليمات البرمجية الشرطية مع "Server.Execute".

يدير الخادم الخاص بي Microsoft-IIS / 5.1 كما هو الحال في الطلب.servervaribles ("Server_Software").

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top