تكرار طريقة الويب حتى يتم العثور على البيانات ثم العودة من خدمة الويب لتطبيق الدردشة في asp.net
-
22-09-2019 - |
سؤال
لا بد لي من تنفيذ الدردشة بأسلوب 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 الحالي الخاص بك، فإن مكالمات الخادم تكون ضئيلة من جافا سكريبت لأن الطلب الجديد يتم تقديمه فقط من العميل إذا قام الخادم بإرجاع البيانات المحدثة.
لذلك مواكبة التصميم الحالي