باستخدام SQLCachedePendency للحصول على تحديثات الوقت الحقيقي؟ - asp.net.

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

سؤال

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

  • الاقتراع الطويل (مذنب) - يبدو أن هذا معقد لتنفيذ
  • الاستطلاع العادي - يمكنني الحصول على طريقة AJAX تؤدي إلى قاعدة بيانات ضربت كل 5 ثانية للحصول على الوضع الحالي. لكني أخشى أن يكون لهذا قضايا الأداء.

ثم قرأت عن استخدام SqlCacheDependency - أساسا يتم إبطال ذاكرة التخزين المؤقت بناء على حقل في الجدول. أفترض أنني أستطيع استخدام الحدث الذي تم إبطاله عند إبطال ذاكرة التخزين المؤقت لإظهار التحديث الجديد للمستخدم؟

ما هو الحل السهل الذي لن يكون له مشاكل في الأداء؟

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

المحلول

بدلا من الاقتراع قاعدة البيانات، سيكون نهج أكثر قابلية للتطوير ويقترم في استطلاع وجود ملف على خادم الويب الخاص بك، شيء مثل ملف JS خفيف الوزن. محتويات الملف ليست مهمة، ولكن تعطيك فكرة يمكنك الحصول على كائن JSON من نوع ما يصف بتفصيل أكبر نتيجة العملية.

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

إليك كيف يمكن أن تعمل.

يضغط المستخدمون على زر المشاركات التي تنشر الخادم

ركلات الخادم لعملية وإرجاع معرف على سبيل المثال C3201620-E622-4FE2-9F3A-E02FA613F59

WEB UI ثم استطلاعات الرأي بشكل كبير لوجود C3201620-E622-4FE2-9F3A-E02FFA613F59.JS، فإن JavaScript من شأنها إدارة خطأ 404 والحفاظ على إعادة المحاولة حتى يتلقى 200

آمل أن يمنحك هذا بعض الأفكار.

مثال رمز للتعامل مع 404 في jQuery

$.ajax({
        url: '/CheckForStatusChange/C3201620-E622-4fe2-9F3A-E02FFA613F59.json',
        type: "GET",
        success: function(result) {

        },
        error: function(request, status, error) {
        //handle error here and setTimeOut                 

        }); 

نصائح أخرى

لديك 2 مشكلات:

  1. استرجاع البيانات لدفع
  2. دفع البيانات إلى العملاء

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

العنصر رقم 2 هو مهتز قليلا، لأنك ستحتاج إلى إما أن تضغط على الخادم باستمرار، أو استخدم خادم المذنب. لقد كتبنا خادم مذنب للغاية قابل للتطوير، Websync., ، على الجبل المجمد الذي قد يناسب مشروع القانون. في الأساس، لديك عملية منفصلة تدفع النشر، وستقوم WebSync بتعامل مع دفع البيانات إلى عملائك.

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