إذا كنت تعرف Response.Flush وResponse.Clear، فلن تضطر إلى الانتظار بهذه الطريقة. في كل مرة يتم فيها إنشاء صفحة Html، يتم استخدام Response.write لإرجاع رسالة تشير على الفور إلى أن سجل قاعدة البيانات قد قام بإنشاء HTML. عندما يكتب مبرمج صفحة HTML ثابتة تم إنشاؤها من صفحة ASP، إذا تم إنشاء عدد كبير من الصفحات في نفس الوقت، فلا بد أنه واجه عملية انتظار طويلة حيث يظهر شريط التقدم الموجود أسفل المتصفح 3%، 6 %، 10%، وما إلى ذلك التي تزيد ببطء. أثناء عملية الانتظار هذه، لا تعرف السجل الذي تم إنشاؤه على الصفحة، لذلك لا يمكنك الانتظار إلا وعيناك مفتوحتان على مصراعيها.
إذا كنت تعرف Response.Flush وResponse.Clear، فلن تضطر إلى الانتظار بهذه الطريقة. في كل مرة يتم فيها إنشاء صفحة Html، يتم استخدام Response.write لإرجاع رسالة تشير على الفور إلى أن سجل قاعدة البيانات قد قام بإنشاء HTML.
بهذه الطريقة، عندما يتم إنشاء عدد كبير من الصفحات في نفس الوقت، لم تعد وحدك تنظر إلى صفحة فارغة، بل فقط في حالة ذهول عند شريط التقدم الذي يتغير ببطء في الجزء السفلي من المتصفح، ويمكنك دائمًا معرفة أي منها تم إنشاء سجل قاعدة البيانات حتى لو كان هناك حادث، مثل عطل أو انقطاع التيار الكهربائي وما إلى ذلك، ستعرف التاريخ الذي يجب فيه تسجيل الجيل التالي وإعادة تشغيله لإنشاء HTML. أليس هذا رائعًا؟ هذا شريط تقدم وأكثر تحديدًا.
هههه لا تقلق، دعونا نلقي نظرة على معنى Response.Flush و Response.Clear أولاً.
تقوم طريقة Flush لكائن الاستجابة بإرسال الإخراج إلى المخزن المؤقت على الفور. ستتسبب هذه الطريقة في حدوث خطأ في وقت التشغيل إذا لم يتم تعيين Response.Buffer على TRUE. بناء الجملة: Response.Flush ملاحظة: إذا تم استدعاء أسلوب Flush على صفحة ASP، فسوف يستجيب الخادم لطلب البقاء على الصفحة. يتم تطبيقه على كائنات الاستجابة.
فيما يتعلق بـ Buffer، إليك مقدمة. يُترجم Buffer حرفيًا من اللغة الإنجليزية إلى منطقة عازلة، وهنا نسميها buffer لأنها ليست مجرد اسم، ولكنها فعل أيضًا.
المخزن المؤقت هو مكان يتم فيه تخزين سلسلة من البيانات، ويمكن إخراج البيانات التي حصل عليها العميل مباشرة من نتيجة تنفيذ البرنامج أو إخراجها من المخزن المؤقت. ولكن هناك فرق في السرعة بين هاتين الطريقتين: في الويب، عندما لا يتم طلب برنامج ASP عدة مرات، لا يوجد فرق بين الاثنين، على الأقل لا يمكننا الشعور به. ولكن عندما يطلب العديد من الأشخاص برنامج asp، تختلف السرعة. إذا لم يكن هناك مخزن مؤقت، فإن النتيجة التي حصل عليها كل عميل يطلب برنامج ASP هي النتيجة التي تم الحصول عليها عن طريق تنفيذ برنامج ASP مرة واحدة. إذا تم تخزين برنامج ASP مؤقتًا، فإن النتيجة التي حصل عليها كل عميل هي النتيجة المخزنة مؤقتًا نتيجة المنطقة ليست نتيجة تنفيذ البرنامج مرة واحدة. على سبيل المثال، يصل 1000 مستخدم إلى صفحة ASP في نفس الوقت. إذا لم يتم تخزين برنامج ASP مؤقتًا، فسيتم تنفيذ البرنامج ألف مرة، مما سيؤدي إلى زيادة التحميل على الخادم ويجعل العميل يفتح الصفحة بشكل أبطأ إذا تم تخزين برنامج ASP مؤقتًا، فستكون النتيجة مختلفة، حيث يحصل كل عميل على البيانات مباشرة من المخزن المؤقت، ولن يزيد الخادم من عدد عمليات تنفيذ البرنامج بسبب زيادة الوصول، وبالتالي ستكون السرعة التي يفتح بها العميل الصفحة. أبطأ مما كانت عليه في الحالة السابقة. هذه هي فائدة المخزن المؤقت.
فيما يتعلق بـ Response.clear، يقوم الأسلوب Clear بحذف كافة مخرجات HTML الموجودة في المخزن المؤقت. لكن الطريقة Clear تحذف نص الاستجابة فقط وليس رؤوس الاستجابة. يمكنك استخدام هذه الطريقة لمعالجة حالات الخطأ. لاحظ أن هذه الطريقة ستتسبب في حدوث خطأ في وقت التشغيل إذا لم يتم تعيين Response.Buffer على TRUE. بناء الجملة: يتم تطبيق Response.Clear على كائنات الاستجابة.
حسنًا، إذا كنت تريد تحقيق تأثير الإخراج الفوري، فما عليك سوى إضافة Response.Flush وResponse.Clear بعد الحصول على معلومات موجه الإخراج المطلوبة في نص الحلقة. يحب:
<%
لأني = 1 إلى 2000
لـ i1=1 إلى 3000
''حلقة فارغة، وتمتد كل وقت التنفيذ
التالي
الاستجابة.اكتب ط &)
الاستجابة. فلوش
الاستجابة.واضحة
التالي
%>
بعد تنفيذ عبارة asp أعلاه، ستجد أن الإخراج يتم إخراجه واحدًا تلو الآخر. إذا قمت بتنفيذه مرة واحدة، فسيتم إخراجه مرة واحدة.
لكنني رأيت شخصًا ما على الإنترنت يقول ذلك مرات عديدة، نجد أنه حتى لو استخدمنا Response.Flush()، لا يتم إرسال المعلومات السابقة إلى العميل لعرضها. لا يزال أمامنا شاشة بيضاء. بعد الاختبار المتكرر، توصلت إلى نتيجة: يجب أن يكون محتوى التدفق 256 بايت على الأقل. أي أنه فقط إذا قام التجميع بإنشاء ما لا يقل عن 256 بايت من البيانات، فيمكن إرسال المعلومات إلى العميل وعرضها بعد تنفيذ Response.Flush().
من الغريب أن البيان الذي قدمته أعلاه يحقق بالفعل تأثير العرض واحدًا تلو الآخر، ولا ينتج 256 بايت مقدمًا. يمكنك حفظ البيان أعلاه كمفكرة وتشغيله لترى، ويتم عرض التأثير سطرًا تلو الآخر. الآراء التي أدرجتها لا تمثل سوى آراء Flymorn الشخصية ولا يجوز استخدامها لأغراض أخرى.
إذا كنت تريد حقًا إخراج 256 بايت مسبقًا، فيمكنك القيام بذلك:
<%
خافت ليجي
لأني = 1 إلى 256
liji=liji&<!--قم أولاً بإنشاء 256 حرفًا-WWW.PIAOYI.ORG-->
إذا len(liji)>=256 ثم قم بالخروج لـ
التالي
%>
إذا كانت لديك وجهات نظر مختلفة أو نتائج اختبار مختلفة، فلا تتردد في مناقشة الأمر معي.