ASP.NET - التخزين المؤقت بواسطة سلسلة الاستعلام (Varybyparam)

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

سؤال

في أي حالات يجب أن نستخدم سلاسل الاستعلام (Varybyparam) لتحقيق التخزين المؤقت في ASP.NET؟

هل يمكن لأي شخص أن يعطي مثالا على وضع حياة حقيقي في حالة تطبيق الويب؟

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

المحلول

Products.aspx?productID=12345

من الواضح أنك لا تريد ذاكرة التخزين المؤقت للإخراج من المنتجات .aspx للحصول على بيانات المنتج الأول الذي تم طلبه.

بالتفصيل

إذا ضربت Products.aspx?productID=12345 سيتم معالجة الصفحة بالنسبة لي، ابحث عن معلومات المنتج 12345، وذاكرة التخزين المؤقت للنتائج. ثم ضربت Products.aspx?productID=54321, ، لن تتم معالجة الصفحة من أجلك ولكن سيتم استرداد المنتجات .aspx من ذاكرة التخزين المؤقت للإخراج وسترى معلومات 12345. ليست جيدة. varybyparam يحل هذا.

نصائح أخرى

المثال الأكثر كلاسيكية قد يكون: كتالوج المنتج

قد يكون له بنية URL مثل ذلك:

http://www.myshop.com/Catalog/ViewAllProducts.aspx

http://www.myshop.com/Catalog/ViewAllProducts.aspx?PageNum=123&PageSize=50

http://www.myshop.com/Catalog/ViewProduct.aspx?ProductID=12345

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

http://www.myshop.com/Catalog/ViewAllProducts.aspx?PageNum=123&PageSize=50

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

عنوان URL الثالث هو شاشة تفاصيل منتج واحدة مع معرف المنتج (والتي يمكن أن تكون معرف فريد من قاعدة البيانات) حيث إنها معلمة Querystring واحدة. سوف تحتاج أيضا طلبات متعددة دائما إلى إرجاع نفس البيانات (ما لم السعر أو الوصف أو عنصر آخر من تغيير المنتج المحدد على أساس متكرر). سيتم تخفيض التخزين المؤقت على استنادا إلى QueryString "المنتج" (وهو اختلافات في قيمة المنتجات المختلفة) إلى الحد من تحميل قاعدة البيانات بشكل كبير. ضمان مدة ذاكرة التخزين المؤقت ليست كذلك جدا سوف تضمن طويلا أن تنتهي صلاحية ذاكرة التخزين المؤقت في وقت معقول يجب أن تتغير بيانات قاعدة البيانات الفعلية الفعلية.

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