سؤال

خلفية:

http://www.hanselman.com/blog/hanselminutespodcodcast188aspnetmvc2betawithphilhaack.aspx.

ابدأ من 27: 15، تمت مناقشة العرص في 28:43 لن تكون إحداثاس جزءا من الأزواج كطريقة عمل غير جذابة تسمى.

(دعنا نقول إجراء مؤشر بوابة منزلك الدعوة 1.GetNews 2.getSweather 3.getSock asynchronicly.you لديك لحفظ عرض المشاركات الحديثة للمستخدم على نفس الرأي. (GetUserreCentPosts))

أسئلة

ماذا لو أنفسخالات أنفسهم غير متزامنين؟

هل سيتم استدعاء GetUrSERECENTPOSTS فقط بعد أن أكمل مؤشر المنزل عملها على الرغم من ذلك؟

يجب أن تقدم الاعتراضات بشكل غير متزامن على طريقة عرض افتراضية؟

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

المحلول

لا أعتقد أنك تستطيع القيام بذلك بنجاح. النقطة التي يمكنك الاستفادة منها من معالجة Asynch قد مرت بالفعل عندما تبدأ وجهات نظرك في التقديم. إن خط أنابيب MVC الذي يقوم بإعداد أساليب البدء / الإنهاء قد أكملت بالفعل وعرض ليس له طريقة للعودة إليها على نفس الطلب. يبدو أنك قد تكون عالقا مع معالجة متزامنة أو ابتكر بطريقة ما لاسترداد جميع بياناتك مقدما وتخزينها في Tempdata أو شيء ما لتقديمه.

نصائح أخرى

ربما يكون إطار الرفع في Scala هو الوحيد الذي أدركه أنه يحتوي على إجراءات جزئية متوازية لن تمنع عرض المحتوى الرئيسي ولكنه سيستخدم Comet-Push لتقديم محتوى عرض جزئي لهذه الكتل التي قد تستغرق بعض الوقت للحصول عليها البيانات ل.

لاستخدامها، فقط لف كتلة في رأيك داخل عقدة موازية

<lift:parallel>
     //this is where Html.RenderAction("GottaFetchNetworkDataFromSomewhereView");
    //this is where Html.RenderAction("GottaFetchNetworkDataFromSomewhereView2");
  // would go
</lift:parallel>

سيعتني المصعد أيضا بخدمة توصيل صفحتك لإدارة طلبات HTTP بالطريقة المناسبة بحيث تدفع المستعرض "جولة" في الانتظار ".

لسوء الحظ، ASP.NET MVC لديها دعم المذنب ضعيف. لا يوجد الكثير من وحدات التحكم غير المتزامنة، وهو تحسن ولكن ليس أنيقا كما، على سبيل المثال، طريقة تعليق الإطار Akka () للاقتراع الطويل.

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