هذا الموضوع كتبه :simo
الإخوة الأعزاء ..
لدي استفسار أتمنى أن تساعدوني به ..
لنفترض انه لدينا صفحة على الانترنيت تتحدث محتوياتها بشكل مستمر ..
ولتكن مثلا صفحة تعرض أسعار الأسهم في البورصة لبلد ما..
في هذه الحالة يجب أن يتم تحديث الصفحة بشكل دائم و مباشر عند تغير أسعار البيع ..
فإذا كان مستخدم ما قد حمل الصفحة في مستعرضه .. فستبقى الصفحة القديمة ظاهرة عنده بالرغم من تغيير المحتويات في الصفحة الموجودة على موقع الانترنيت .. حتى يقوم بعمل تحديث لها .. /إعادة طلبها و تحميلها من جديد/..
هل يوجد طريقة أستطيع من خلالها أن أرسل بيانات إلى المستعرض اطلب بها منه أن يقوم بتحديث محتويات الصفحة التي يقوم بعرضها حاليا .. عند الحاجة لذلك..
أو أن أقوم بإرسال الصفحة الجديدة إلى الأشخاص الذين يقوموا بفتح الصفحة حاليا عند تحديث محتوياتها ..
الذي ابحث عنه تحديدا هو طريقة سريعة ذات استجابة عالية .. طريقة تمكنا من إرسال معلومات إلى الأشخاص الذين يحملون صفحة محددة و تحديث محتويات هذه الصفحة بسرعة و بشكل ديناميكي عند الحاجة ..
سأكون ممنونا لكم كثيرا إذا ساعدتموني في هذا الموضوع ..
و في الختام لكم مني كل التحية و السلام ..
هاني سيمو
____________________________________________
رد:
هذا الجواب مأخوذ من مراسله بيني وبين الأخ أنس
حيث أرسل لي مشكورا الآتي :
header (Expires: Mon, 26 Jul 1997 05: 00: 00 GMT); // Date in the
past
header (Cache- Control: no- cache, must- revalidate); // HTTP/1. 1
header (Pragma: no- cache); // HTTP/1
هذه التعليمات تمنع من حدوث الكاش للصفحة
وبالتالي كل طلب للصفحة يكون من السيرفر مباشرة
وهذه التعليمات يجب أن تكتب في بداية الكود
وقبل كتابة أي شيء اخر
والله الموفق
وتقبل تحياتي
إبراهيم
__________________________________________________
رد:simo
أخي إبراهيم تحية طيبة وبعد..
شكرا على الرد ..
إن التعليمات السابقة التي أخبرتني عنها تحل قسم كبير من المشكلة .
و بها أصبح من الممكن أن أحدد مقدار صلاحية الصفحة .. و تجاوزنا موضوع حفظ الصفحات في الذاكرة المؤقت ..
لقد .. حل قسم كبير ومهم جدا من الذي كنت ابحث عنه ..
و لكن .. في هذه الحالة و عند استعمال هذه الأوامر و التعليمات .. سيتم إعادة تحميل الصفحة من جديد من الملقم .. سواء تم تغيرها أو لا..
أي أنه سيتم طلب الصفحات بشكل مستمر سواء عدلت محتويات الصفحة أو لا..
و اعتقد أن هذا في حالات المواقع ذات الازدحام العالي مع كثير من الزوار سيؤثر على جودة العمل بشكل ملحوظ ... مع أن ثقتي بصديقنا الـ Apache و قدراته على تلبية كميات كبيرة من الطلبات في آن واحد كبيرة و لكن لسنا بحاجة لوضعه بمثل هذا الموقف الصعب جدا .. طبعا أنا امزح ..
كما أخبرتك التعليمات السابقة تحل قسم مهم من المشكلة .. و لكن .. ماذا إذا أردنا فقط إخبار المستعرض انه يجب عليه أن يحمل الصفحات حين تغيير محتوياتها فقط .. و ليس أن يقوم بتحميلها دائما .. بمحتويات قديمة أو جديدة..
قد أكون أنا متطلب زيادة عن اللزوم .. ولكن إذا وجدة مثل هذه التعليمة ستؤمن حصول المستخدم على المعلومات المطلوبة و المحدثة بشكل مستمر بأقل ضغط على الملقم ..
مرة ثانية أشكرك على المساعدة .. و أتمنى لك دوام النجاح و التوفيق..
و في الختام لكم مني كل التحية و السلام..
هاني
________________________________________________
رد:صلاح
في هذه الحالة قد تحتاج إلى تمرير إشارات عبر ترويسات HTTP تحدد الوقت اللازم لبقاء الصفحة دون تحديث، بحيث يقوم المتصفح تلقائياً بتحديث الصفحة تلقائياً وحذفها من الملفات المؤقتة بعد مرور هذا الوقت،
فمثلاً إذا كنت تتوقع أن تتغير محتويات الصفحة كل يوم فإنك ستقوم بإرسال أمر header ليحدد أن الصفحة ستنتهي صلاحيتها بعد يوم واحد، وهكذا،
وتحتاج العملية إلى عدى إعدادات تعتمد على اعتبارات كثيرة وقد لن تكفي تعليمة أو طريقة واحدة لجعل موقعك كما تريد، قم بالبحث حول موضوع cache عن طريق PHP، وستجد العديد من المقالات حول هذا الموضوع،
http://www.google.com/search?hl=en&lr=&ie=...=php+page+cache