İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

cache süresi

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
performans açısından cache sistemini incelemeye basladım. ceviz'de örnek bir kod var; süreyi değistirmek istiyorum genel bir bilgi verecek birisi var mı?
örneğin $cachetime = 120 * 60; // 2 Hours satırında 120 nedir, * nedir ve 60 nedir. onun altındaki satırda da ($updatetime = $cachetime / 60 / 60;) yazmıs, burada bu / 60 / 60 neyi belirtiyor. çok tesekkürler.

//-------------------------------------
//---- CACHE MOD v0.4 by xam
//-------------------------------------
function cache_check ($file = 'cachefile') {
global $cache,$rootpath,$cachesystem,$cacheident;
if ($cachesystem == 'yes') {
$cachefile = $rootpath.$cache . '/'.$file.'-'.$cacheident.'.html';
$cachetime = 120 * 60; // 2 Hours
$updatetime = $cachetime / 60 / 60;
if (file_exists($cachefile) && (TIMENOW - $cachetime < filemtime($cachefile)))
{
include_once($cachefile);
print("<p align=center><font class=small color=red><b>This content was last cached on ".date('Y-m-d H:i:s', filemtime($cachefile))." and updating every ".$updatetime." hours.</b></font></p>");
exit;
}
ob_start();
}else
return;
}

function cache_save ($file = 'cachefile') {
global $cache,$rootpath,$cachesystem,$cacheident;
if ($cachesystem == 'yes') {
$cachefile = $rootpath.$cache . '/'.$file.'-'.$cacheident.'.html';
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();
}else
return;
}
//-------------------------------------
//---- CACHE MOD Extension by DarkElder
//-------------------------------------
$cacheident = ($_SERVER['QUERY_STRING'] != '' ? md5($_SERVER['QUERY_STRING']) : 'noGet');
//-------------------------------------
//---- CACHE MOD v0.4 by xam
//-----------
 

zbahadir

0
İyinet Üyesi
Katılım
19 Mart 2006
Mesajlar
2,416
Reaction score
0
Konum
Trabzon
Yanlış anlamadıysam;
2 saatlik 7200 saniyelik bir zaman baz alınmış ve her iki saniyede(7200/60/60=2sn) bir oluşturulan dosyaların oluşturulma zamanlarına bakılıyor. Dosyaların oluşturulma zamanı 2 saati geçmişse yeniden oluşturuluyor.

Benin anlamadığım nereden tetikleniyor.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
evet o 120 * 60 demek 120 dakika ve 60 saniyeyi çarpıp toplam saniye süresini bulmak demekmis. altında da bunu saat cinsinden yazdırmıs. ama sanırım cevizden aldığım bu scriptin cache süresi çalısmıyor ne yazık ki :(
 

zbahadir

0
İyinet Üyesi
Katılım
19 Mart 2006
Mesajlar
2,416
Reaction score
0
Konum
Trabzon
evet o 120 * 60 demek 120 dakika ve 60 saniyeyi çarpıp toplam saniye süresini bulmak demekmis. altında da bunu saat cinsinden yazdırmıs. ama sanırım cevizden aldığım bu scriptin cache süresi çalısmıyor ne yazık ki :(

Çalışması için sürekli olarak cronlanması gerekiyor.
Bir de bu script windows üzerinde çalışıyormuş. :(
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
nasıl yani cronlaması gerekiyor? her dakika çalıstıracakmıyım ben bunu. yok inanmıyorum sana :D
 

zbahadir

0
İyinet Üyesi
Katılım
19 Mart 2006
Mesajlar
2,416
Reaction score
0
Konum
Trabzon
nasıl yani cronlaması gerekiyor? her dakika çalıstıracakmıyım ben bunu. yok inanmıyorum sana :D

Sizin için zor olur tabii :)
Sistem tarafından cron ile yoklanması lazım. Nasıl çalıştığını Invision forum scriptinde incelemiştim. O daha bir profesyonel çalışıyor. Hem cache dosyaları üzerine PHP tag'ları ile çalışmalarına devam edebiliyorlar.

PHP scriptler kendi başların çalışmıyorlar bildiğiniz gibi ; her seferinde load edilmeleri gerekiyor. Oysa bu işlem javascript dosyalarında setTimeout fonksiyonuyla kolayca yapılabiliyor.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
zbahadir iyi de, ben cachelenen sayfayı bir süre sonra çağırarak bu cron'un yaptığı isi yapıyorum. örneğin yukarıdaki kodda 10 saniyeye ayarladım, 10 dakikadır sürekli giriyorum bir hareket yok, sürekli cacheteki dosyayı çağırıyor. yenilenen içerik ortalıklarda yok :D
 

zbahadir

0
İyinet Üyesi
Katılım
19 Mart 2006
Mesajlar
2,416
Reaction score
0
Konum
Trabzon
zbahadir iyi de, ben cachelenen sayfayı bir süre sonra çağırarak bu cron'un yaptığı isi yapıyorum. örneğin yukarıdaki kodda 10 saniyeye ayarladım, 10 dakikadır sürekli giriyorum bir hareket yok, sürekli cacheteki dosyayı çağırıyor. yenilenen içerik ortalıklarda yok :D

Şu anda hali hazırda bir cache dosyası yok belki de ondandır;
Nasıl yükleme yapıyorsun ? ya da fonksiyonları nasıl çağırıyorsun?

Ayrıca fonsiyonları çağırmadan önce $cachesystem değişkeninin içeriğinin yes olması gerekiyor.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
içeriği yes, bütün ayarlar tamam. hali hazırda bir cache dosyam da var. ceviz'de ne yazıyorlarsa yaptım. ama o belirttiğim süre geçince yine yenilemiyor sayfayı.
not: r10'da Crash yazmıs bu scriptin süre olayının bozuk olduğunu öf.
 

zbahadir

0
İyinet Üyesi
Katılım
19 Mart 2006
Mesajlar
2,416
Reaction score
0
Konum
Trabzon
Sayfaları yenilememesinin nedeni buradaki şartların oluşmaması anlamına geliyor :
if (file_exists($cachefile) && (TIMENOW - $cachetime < filemtime($cachefile)))

Benim elimde bir örnek vardı, bulursa yarın attach yaparım buraya.
Yarın devam ederiz.
Şimdilik iyi sabahlar.
 
W

wapekiz.com

Misafir
@ploop sen olduğun için Caesar yazmamı istedi;

Kodları senin için çalışır hale sokmuş. Tek yapman bunu cache.php şeklinde kaydedip oyle kullanman.
PHP:
$cachesystem = 'yes'; 
$rootpath='./'; 
$cache = 'cache'; 
$cachetime = (2*60) * 60; // 2 saat
//$cachetime = 5 * 60; //5dk
//$cachetime = 10 * 60 //10dk
//$cachetime = (24*60) //1 gün

function cache_check ($file = 'cachefile') {
    global $cache,$rootpath,$cachesystem,$cacheident,$cachetime;
    if ($cachesystem == 'yes') {
        $cachefile = $rootpath.$cache . '/'.$file.'.html';
        $updatetime = $cachetime;
		$zaman=@filemtime($cachefile)+$updatetime;
        if (file_exists($cachefile) && ( time() < $zaman )   )
        {
            include_once($cachefile); 
            exit;
        } 
        ob_start();
    }else
        return;
}
   
function cache_save  ($file = 'cachefile') {
    global $cache,$rootpath,$cachesystem,$cacheident;
    if ($cachesystem == 'yes') {
        $cachefile = $rootpath.$cache . '/'.$file.'.html';
        $fp = fopen($cachefile, 'w');
        fwrite($fp, ob_get_contents());       
        fclose($fp);         
        ob_end_flush();
    }else
        return;
}

dipnot: kullanımıda

PHP:
<?
include "cache.php";
cache_check("main");
//kodlar
cache_save("main");
?>
 

maxcilopez

0
İyinet Üyesi
Katılım
27 Ekim 2006
Mesajlar
545
Reaction score
0
s.a Bu sistem güzel ama bende çalışmadaı
Benim ana sayfam news.php
buna bağlı diğer dizinlerde
/news.php?newsid=79
/news.php?newsid=78
/news.php?newsid=77
hepsi ayrı ayrı sayfa
ama sadece news.php yi cacheliyor ve
/news.php?newsid=77 bunlardada sadece news.php yi açıyor yani ona bağlı id leri açmıyor :s ve cachelemiyor
tek sayfayı cacheliyor:s
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst