2010-07-05 17 views
6

Ben bu bağlantıyı okuyun: -CodeIgniter çıkış önbelleği nasıl çalışır?

http://codeigniter.com/user_guide/general/caching.html

O yazılır olun: -

When a page is loaded for the first time, the cache file will be written to your system/cache folder

ve biz $this->output->cache(60); tarafından bir görünüm önbelleğe alabilir. Ama aslında nasıl çalışıyor? Kullanıcılarım düzenli olarak düzenli olarak görüntülemeye devam ediyor ve hangi görünümün çok sık değiştiği sonucu olarak kayıtları silmeye devam ediyor. Değiştirilen verileri gösterecek mi? ya da önbellek eski bayat verisini geri getirecek mi? (ekler ve güncellemelerden önce)? Veritabanından otomatik olarak yeni verileri yönetir ve getirirse, cache işlevindeki dakikaları belirtmenin amacı nedir? peşin

Teşekkür :)

cevap

14

önbelleklemeyi kullanmayın şudur:

bir sayfa isteği yapılır. Codeigniter (çerçevenin çoktan yüklenmesinden bile önce) geçerli url'nin bir karmaşasını yapar ve eğer bu dosya ismini önbellek dizininde bulursa, buna hizmet eder.

Yeni verileri alabilmenin tek yolu dosyaları el ile silmek. Kodlandırıcı, dosyayı oluşturduğu karma öğeden bulamadığında, sayfayı dinamik olarak oluşturur.

Codeigniter'in uygulaması "tam sayfa" önbelleklemesi olarak adlandırılır ve böylelikle kullanım kolaylığı sınırlıdır. Phil Sturgeon'dan baktığım kısmi bir önbellek kütüphanesi var: http://philsturgeon.co.uk/code/codeigniter-cache

Dürüst olmak gerekirse, birçok proje için tam sayfa önbelleğe alma gerçekten de bu kadar kullanışlı değil. Aslında, tam sayfa önbelleğe almayı gerektiren projelere, bunu kod yazıcısına bırakmıyorum (web sunucusuna bırakıyorum: daha hızlı).

Aradığınızı sanırım kısmi bir önbellekleme yöntemidir; çoğu insan bunu tercih ederdi. Tek bir sunucu kullanıyorsanız veya birden çok sunucunuz varsa Memcached kullanıyorsanız, APC'ye bakın.

İyi Şanslar.

7

Ama nasıl aslında çalışır? Önbelleğe alınan süreden daha erken önbelleğe alınmış bir sürüm varsa, bu önbelleklenen sürüm çıktısı alınacaktır.

Değiştirilen verileri gösterecek mi?

Sonunda evet, ama $ cache_time

bir gecikme ile ne düzenli benim kullanıcıların çok sık değişiklikleri görüntülemek hangi bir sonucu olarak güncellenmesi ve silme kayıtları tutmak eğer.

önbellek süresini azaltın veya yolu CodeIgniter'ın önbelleğe alma genellikle çalışır bütün

+9

Yorum yapmaksızın oy vermek sucky davranışıdır – Pete