تكرار طريقة الويب حتى يتم العثور على البيانات ثم العودة من خدمة الويب لتطبيق الدردشة في asp.net

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

سؤال

لا بد لي من تنفيذ الدردشة بأسلوب Gmail في موقع الويب الخاص بي asp.net.أعلم الآن أنه قد قيل الكثير في هذا الصدد هنا وفي المنتديات الأخرى...حول المذنب ومزاياه....

لقد رأيت مؤخرًا هذا الموقع www.indyarocks.com وعندما قمت بإعداد ملف تعريف لموقعهم على الويب، اكتشفت أنهم يرسلون طلبًا غير متزامن للدردشة وتنتظر الصفحة حتى يحصل الخادم على بعض البيانات للعودة، وذلك فقط بعد عودة الصفحة....( أعني أنه يظهر الحالة 200 موافق) ويتم إرسال الطلب مرة أخرى.

لقد قمت بتنفيذ محادثة في موقع الويب الخاص بي حيث أقوم باستقصاء قاعدة البيانات بعد 5 ثوانٍ لأي محادثة جديدة... لذا أريد معرفة ما إذا كنت أرسل طلبًا باستخدام ASP.NET AJAX إلى طريقة ويب وأستمر في التكرار على الخادم حتى لديه بعض البيانات للعودة ثم العودة إلى صفحة الويب التي أطلق عليها هل هو نهج جيد وإذا لم يكن كذلك فما هي عيوبه ؟؟؟؟

الكود الذي يمكنني استخدامه

<WebMethod(EnableSession:=True)> _
    Public Function looper(ByVal x As String) As String
        Dim flag As Boolean = False
        While (flag = False)
            Dim ans As String = getScalar("select 1 from Chat where sent_by=1")
            If Not ans Is Nothing Then
                flag = True
            End If
        End While
        Return "x"
    End Function

هنا يمكنني تكرار الخادم حتى يحتوي على بعض البيانات

وعلى أية حال فهو أفضل من نهج الاقتراع????

هل لدى أي شخص اقتراحات لتحسين هذا النهج؟؟

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

المحلول

إنه أفضل من نهج الاقتراع من جانب العميل

لماذا, ، لأن

  • إنه يتجنب ذهاب الخادم ذهابًا وإيابًا - مما يوفر الكثير من الوقت
  • وتجنب المكالمات غير الضرورية إلى الخادم (يستدعي أسلوب الاستقصاء طريقة الويب على الرغم من عدم توفر البيانات)

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

لذلك مواكبة التصميم الحالي

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