السلام عليكم،
قمت بعمل تحسين في نسخة اخبار BBC الجديد بحيث يقوم بعمل cache لصفحة اخبار BCC، التحسين الجديد يختصر قرابة 3 ثوان في سرعة تحميل الصفحة.
طريقة عمل الكاش ليست جديدة، لكن حبيت اوضحها للفائدة 
طريقة العمل القديمة:
1- اجلب صفحة موقع BBC
2- حللها
3- اعرضها
من بين هذه الخطوات تبقى خطوة جلب الصفحة هي الابطأ لانها من موقع خارج السيرفر، وهناك العديد من الاشخاص يصلون الى نفس الصفحة في نفس الوقت، فيظطر البرنامج لجلبها في كل مرة تطلب.
باستخدام الكاش يتم حفظ الصفحة في ملف، ويتم استخدامة في المرات اللاحقة، وبهذه الطريقة تكون اول مرة هي البطئية والمرات اللاحقة اسرع بكثير، بالطبع يتم تحديث الصفحة مرة اخرى اذا مر عليه زمن معين.
الكود التالي سوف يقوم بعمل كاش للصفحة
http://news.bbc.co.uk/low/arabic/news
في ملف اسمة
temp.txt
كود:
// امسح اي معلومات قديمة عن الملف
clearstatcache();
// اجلب معلومات الملف ، اهم شئ هو وقت اخر تعديل
$stat = stat("temp.txt");
// هل نحتاح الى تحديث الصفحة؟
// سنقوم بطرح الزمن الحالي time
// مع زمن اخر تعديل على الملف
// اذا كان اكبر من 300 ثانية (5 دقائق) قم بجلب نسخة جديدة
// من صفحة الاخبار
if ( (time()-$stat[9]) > (300) ) {
// افتح صفحة الاخبار للقرآة
$fi = fopen("http://news.bbc.co.uk/low/arabic/news/", "r");
// افتح ملف الكاش للكتابة
$fo = fopen("temp.txt", "w");
// قم بالقرأة من صفحة الاخبار والكتابو في ملف الكاش
while (!feof ($fi)) {
fwrite($fo, fgets($fi, 4096) );
}
// اغلق الملفين
fclose ($fi);
fclose ($fo);
}
والان يمكن تحليل ملف temp.txt مباشرة ولاحظ انه سيكون اسرع بكثير اذا تم تحميلة خلال 5 دقائق من المرة الاولى.
هل من الممكن تحسينه البرنامج اكثر؟ بالطبع، اقولكم شلون اذا احد قرأ هذا اول