الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

caching problems

مغلق
بدأه sunflower في 6 أغسطس 2006 · 10 رد · 637 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لدي سؤال عن مشكلة الـcache لصفحات المواقع

فلدي موقع تعرض صفحته الرئيسية معلومات تسترجعها من قاعدة البيانات وهذه المعلومات تتغير بطبيعة الحال

المشكلة التي تواجهني هي انه احيانا عندما اطلب الموقع تظهر لي الصفحة بمعلومات قديمة وعندما اقوم بتحديث الصفحة تعرض المعلومات الجديدة الصحيحة

قمت باضافة header ليمنع حدوث عملية الcache ولكن مازالت المشكلة تظهر بعض الاحيان!

<meta http-equiv="Expires" content="0" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Cache-Control" content="no-store" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<meta http-equiv="Cache-Control" content="must-revalidate" />

هل هناك حل (يقضي ) على هذه المشكلة؟

أرى مثلا موقع( صحيفة ) معينة ... لماذا لاتتخزن الصفحة الرئيسية لهذه الصحيفة فتظهر لي اخبار الامس؟

كيف استطاعوا التخلص من هذه المشكلة؟

-وهل هناك كود او هدر مثلا يتم اضافته ليجعل الصفحة تقوم بتحديث نفسها (مرة واحدة فقط) عند اول طلب لهذه الصفحة؟

اعرف ان هذا الهدر يقوم بتحديث الصفحة كل فترة معينة ولكني لا أريد ذلك أريد فقط ان يتم التحديث مره واحدة فقط عند أول طلب للصفحة للتأكيد على ظهور المعلومات الصحيحة والاخيرة للزائر

<meta http-equiv="refresh" content="300">

وشكرا

#2

اخوي ارجو توضيح طريقة جلب البيانات من القاعدة

شكرا

#3

اخي لا اعلم ماذا تقصد بطريقة جلب البيانات ، فالطريقة هي ارسال استعلام عنالمعلومات ومن ثم عرضها

طبعا بعد الاتصال بالقاعدة :

$s="SELECT num
FROM `table` 
ORDER BY num DESC;";

if(!($res=mysql_query($s)))
{

 print("Couldn't perform query!  ");

die (mysql_error());
}


while ($row = mysql_fetch_row($res))

 {

echo " $row[0]<br />";

}

أحب ان انوه على ان المعلومات تكون صحيحة في حالة تحديث الصفحة

فأنا ارجح ان تكون المشكلة غالبا بسبب الcache

وليس لسبب اخر

#4

انا لا اتوقع ان المشكلة في الـcaching

]دعنا نحلل الاستعلام قليلا

SELECT num FROM Table ORDER BY num DESC

يفترض ان يقوم هذا البرنامج بجلب جميع الاعداد من الجدول Table بشكل تنازلي

اي ان اكبر عدد سيتم جلبه اولا

اذهب الى قاعدة البيانات عن طرق الــ،Command Line او الــphpMyAdmin

ارجو التجربة فقط لارضائي وعطني خبر

#5

ذهبت الى قاعدة البيانات عن طريق phpMyAdmin

ونفذت هذا الأمر وقام باعطاء النتيجة الصحيحة

اقتباس
انا لا اتوقع ان المشكلة في الـcaching

اذاً ماسبب ظهورالمعلومات القديمة (أحيانا) ، وظهورالمعلومات الصحيحة بعد تحديث الصفحة ؟

#6

عفوا اخي لم افهم قصدك

اقتباس
اذاً ماسبب ظهورالمعلومات القديمة (أحيانا) ، وظهورالمعلومات الصحيحة بعد تحديث الصفحة ؟

يعني اول ماتحمل الصفحة تجد المعلومات القديمة واذا حدثتها تظهر المعلومات الجديدة

اذاكان مافهمته صحيح فالمشكلة ليست من الــServer المشكلة من الـClient (اقصد المتصفح عندك يقوم بحفظ الصفحات التي تم تحميلها)

#7
اقتباس
يعني اول ماتحمل الصفحة تجد المعلومات القديمة واذا حدثتها تظهر المعلومات الجديدة

بالضبط هذا هو الحاصل!

لذلك قلت بأن المشكلة من الcaching ولكن مايحيرني هو انه لماذا يحدث هذا في موقعي فقط؟

لماذا لايخزن المتصفح موقع منتديات الفريق العربي للبرمجة مثلا؟

هل هناك كود او هدر يمنع حدوث تخزين الصفحة في جهاز الزائر؟

#8

طيب جرب الكود هذا

<script lang="javascript">
window.location = document.location;
</script>

وحاول ترفع الموقع على سيرفر في الانترنت وتجرب اذاكنت تستخدم الـــlocalhost

#9

وضعت الكود الآن في الصفحة

بالنسبة لرفع الموقع هو الآن مرفوع وجاهز وانا اقوم بالتطبيق عليه

اما بالنسبة للـlocalhost لا اعلم اذا كنت فهمت ماتقصده بالضبط من تجريبه ولكني استخدمه الآن في الاتصال بقاعدة البيانات

شكرا جزيلا لك اخي ...

#10

العفو اخي

لكن اقصد بالـ localhost

يعني سيرفر محلى (تخلى جهازك سرفر لتجربة اكوادك)

#11

شكرا لك اخي على المساعدة

اتمنى ان لاتظهر المشكلة مجددا

هذا الموضوع مغلق.

مواضيع مشابهة