ASP.NET - التخزين المؤقت بواسطة سلسلة الاستعلام (Varybyparam)
-
19-09-2019 - |
سؤال
في أي حالات يجب أن نستخدم سلاسل الاستعلام (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 "المنتج" (وهو اختلافات في قيمة المنتجات المختلفة) إلى الحد من تحميل قاعدة البيانات بشكل كبير. ضمان مدة ذاكرة التخزين المؤقت ليست كذلك جدا سوف تضمن طويلا أن تنتهي صلاحية ذاكرة التخزين المؤقت في وقت معقول يجب أن تتغير بيانات قاعدة البيانات الفعلية الفعلية.