これが私が使用しているコードです:
<?php
$interval = 5 * 60;
$filename = "cache/".basename( rtrim( $_SERVER["REQUEST_URI"], '/' ) ).".cache";
if ( file_exists( $filename ) && (time() - $interval) < filemtime( $filename ) ) {
readfile( $filename );
exit();
}
ob_start();
include 'dynamicpage.php';
?>
<?php
// More page generation code goes here
$buff = ob_get_contents(); // Retrive the content from the buffer
// Write the content of the buffer to the cache file
$file = fopen( $filename, "w" );
fwrite( $file, $buff );
fclose( $file );
ob_end_flush(); // Display the generated page.
?>
現在、キャッシュされたページが5分以上経過している場合、このスクリプトは古いキャッシュファイルを置き換える新しいキャッシュファイルを生成します。古いキャッシュを最初に表示し、新しいキャッシュページをバックグラウンドで生成する方法はありますか?私のホストは弱いソースなので、ページの読み込みが完了するまで永遠にかかります。