ما كتبته من قبل: لا تزال هذه المقالة مرتبطة بـ ASP، وأعتقد أن كل من يلعب ASP يشعر بهذه الطريقة عندما يكون هناك أكثر من 50000 قطعة من البيانات - تمامًا مثل شبكة الموسيقى، يجب استدعاء آخر 10 قطع وعرضها. الصفحة، الشيء السيئ هو أنه عندما يفتح العديد من المستخدمين الصفحة للوصول، يجب على كل مستخدم قراءة قاعدة البيانات مرة واحدة في كل مرة، مما يقلل بلا شك من الكفاءة، إذا كان من الممكن حفظ البيانات في الذاكرة ثم قراءتها ، مما لا شك فيه أن ما يسمى بذاكرة التخزين المؤقت هو في الواقع فتح مساحة في الذاكرة لحفظ البيانات. باستخدام ذاكرة التخزين المؤقت، لن تضطر إلى الوصول بشكل متكرر إلى البيانات التي تحفظها على القرص الصلب، كما نأمل يمكن لكل مستخدم رؤية هذه البيانات، والتأثير هو نفسه. فكر في استخدام كائن التطبيق لأنه كائن مشترك لجميع الزوار. يمكن للزائر المالك استخدام المعلومات المخزنة كائن مدمج APPLICATION. فيما يتعلق بالتطبيق، هناك طريقتان واحدتان [القفل والفتح]، ومجموعتان [المحتوى والكائنات الثابتة]، وحدثان [application_onstart وapplication_end]، ولن يختفي متغير التطبيق لأن المستخدم يغادر بمجرد إنشائه. سينتظر حتى يتم إغلاق موقع الويب وإلغاء تثبيت البرنامج، ولهذا السبب، يجب أن تكون حذرًا بشكل خاص عند استخدامه، وإلا فسوف يشغل الذاكرة. تحقق من المعلومات ذات الصلة. نحن نكتب البيانات في تطبيق مخصص. الفكرة العامة هي القراءة والتحديث في الوقت المحدد.
قم أولاً بإنشاء قاعدة بيانات بسيطة وكتابة دالة لقراءتها ، واكتبه في درجة حرارة متغيرة خافتة:
ما يلي هو جزء مرجعي:
وظيفة عرض السجلات ()
'قامت هذه الوظيفة في الأصل بتعيين القيمة المسجلة Dim sql, conn, rs إلى درجة حرارة متغيرة
'بيان SQL الشرطي sql = "معرف التحديد، [szd_f]، [szd_t] من المشرف"
'فتح مجموعة اتصال قاعدة البيانات conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("db.mdb")
تعيين rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL، كون، 1، 3
'عندما لا يتم عرض البيانات المطابقة لعبارة sq، إذا لم تكن rs.EOF، فعندئذ
'قم بتعيين درجة حرارة خافتة للمتغير المؤقت
درجة الحرارة = "<عرض الجدول = ""90%"" محاذاة = ""المركز"""
درجة الحرارة = درجة الحرارة & "الحدود = ""1"" لون الحدود = ""الفضة"""
درجة الحرارة = درجة الحرارة & " تباعد الخلايا = ""2"" خلية الحشو = ""0"">"
درجة الحرارة = درجة الحرارة & "<tr bgcolor=""#CCDDEE""><td width=""5%"""
درجة الحرارة = درجة الحرارة & ">المعرف</td><td>العملية</td>"
درجة الحرارة = درجة الحرارة & "<td>الرقم</td></tr>"
بينما ليس rs.EOF
درجة الحرارة = درجة الحرارة & "<tr><td bgcolor=""#CCDDEE"">"
درجة الحرارة = درجة الحرارة & rs("ID") & "</td><td>" & rs("szd_f")
درجة الحرارة = درجة الحرارة & "</td><td>" & rs("szd_t")
درجة الحرارة = درجة الحرارة & "</td></tr>"
rs.MoveNext
ويند
درجة الحرارة = درجة الحرارة & "</table>"
'بعد اكتمال تعيين درجة الحرارة، قم بإعادته إلى الوظيفة DisplayRecords = temp
آخر
DisplayRecords = "البيانات غير متوفرة."
نهاية إذا
'حرر الذاكرة rs.Close
conn.Close
سيترز = لا شيء
تعيين كون = لا شيء
وظيفة النهاية
حسنًا، لقد تم تحويل الوظيفة المذكورة أعلاه، وهي DisplayRecords عند استدعائها.
وهنا يأتي دور التطبيق:
'هذه الوظيفة هي الكتابة إلى ذاكرة التخزين المؤقت. وظيفة DisplayCachedRecords(Secs)
خافت retVal، datVal، temp1
'الثانية هي الوقت المناسب لتحديث البيانات في كل مرة، retVal هو البيانات، datVal هو الوقت المتبقي retVal = Application("cache_demo") 'الحصول على قيمة التطبيق datVal = Application("cache_demo_date") 'الحصول على قيمة التطبيق 'احكم على قيمة datVal، أي لحساب ما إذا كان الوقت قد مر إذا كان datVal = "" إذن
'إذا كان فارغًا، فإن قيمة datVal هي الوقت الحالي بالثواني بالإضافة إلى الوقت المحدد بالثواني datVal = DateAdd("s",Secs,Now)
نهاية إذا
'temp1 هو الفرق الثاني بين الوقت الحالي وdatVal temp1 = DateDiff("s", Now, datVal)
'إذا كانت retVal هي بالفعل القيمة المرجعة للوظيفة المذكورة أعلاه وكان الوقت أكبر من 0
إذا كان temp1 > 0 وretVal <> "" ثم
'ترجع هذه الوظيفة عدد السجلات DisplayCachedRecords = retVal
Response.اكتب "<b><font color=""green"">استخدم ذاكرة التخزين المؤقت لقراءة البيانات"
Response.اكتب "... (" & temp1 & " الثواني المتبقية)</font></b>"
الاستجابة.اكتب "<br><br>"
آخر
إذا كان 'retVal فارغًا، فقم بتعيين قيمة DisplayRecords إلى المتغير temp2
درجة الحرارة الخافتة2
temp2 = DisplayRecords()
'حفظ في التطبيق.------------------>التركيز على التطبيق.قفل
التطبيق ("cache_demo") = temp2
التطبيق ("cache_demo_date") = DateAdd("s"، ثانية، الآن)
التطبيق.فتح
DisplayCachedRecords = temp2
' يتم كتابة الوقت الماضي لذاكرة التخزين المؤقت المسجلة بشكل عرضي هنا، والفرق بالنسبة إلى إجمالي عدد الثواني هو:
Response.اكتب "<b><font color=""red"">تحديث عرض ذاكرة التخزين المؤقت..."
الرد.اكتب "</font></b><br><br>"
نهاية إذا
وظيفة النهاية
%>
اكتمل الشرح،
وفيما يلي
طريقة استدعاء التعليمات البرمجية غير المعلقة الكاملة: <%=DisplayCachedRecords(20)%>
مكتوب في النهاية: إذا شعرت أن ذاكرة الخادم لديك ليست كبيرة بما يكفي، فلا تستخدم كمية كبيرة من. مخبأ.