سؤال

وأنا صنع صفحة ويب ASP.NET الذي يولد صفحات من SQL عندما كنت لا مؤقتا. يمكن أن يكون لها وقت التحميل بين 300mS ول1.5seconds (لا الإصلاح لكم قاعدة بيانات ردود من فضلك).

وأنا شخصيا أجد هذه القيم أن تكون طويلة جدا، وكان يبحث عن الحل الذي يتيح لي الفرصة لإعلام المستخدم أن الصفحة التي يزورها سيتطلب بعض الوقت ليتم تحميلها.

وكنت أبحث عن حل يمكن أن يكون عن طريق الدالة Page_Load، إذا كان ذلك ممكنا. الحل الأمثل بالنسبة لي في هذه الحالة يظهر للمستخدم إما GIF المتحركة أو يتم إنشاء النص قائلا الصفحة.

وعلى الجانب علما جئت من برمجة تطبيقات ويندوز في الغالب.

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

المحلول

وهنا مثال لكيفية استخدام الكائن استجابة لطرد المحتوى إلى المتصفح ومتابعة المعالجة:

using System;
using System.Web.UI;
using System.Threading;

public partial class _Default : Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        Response.Write("<h1>please wait...</h1>");
        Response.Flush();

        // simulate load time
        Thread.Sleep(2000);

        Response.Write("<h1>finished</h1>");
    }
}

نصائح أخرى

ويمكنك البدء في عرض الصفحة، ومسح المخزن المؤقت يدعو Response.Flush (). والتي سوف ترسل محتويات المخزن المؤقت للمتصفح. سوف تحتاج بعد ذلك إلى إيقاف الرسم مرة واحدة في تحميلها.

وثمة خيار آخر يتمثل في استخدام AJAX لتحميل الصور، لذلك قمت بتحميل صفحة كاملة، من دون صور، ثم iniate طلب آخر للحصول على الصور. قد يكون هذا أسهل ثم محاولة تقديم صفحة جزئية.

1.5 ثانية ليست سيئة لصفحة لتحميل أنت متأكد من هذا يستحق وقتك وجهدك؟

وأنت تريد الذهاب الى الناتج الأول الرسم التحميل وثم مسح المخزن المؤقت الانتاج بحيث محتوى يتم إرسالها حتى الآن في متصفح المستخدم باستخدام Response.Flush().

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

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