From 0bc4ebafa5b305689ece7a57ddd7791fa8fe94e5 Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 24 Jun 2012 02:07:59 +0100 Subject: [PATCH] somewhat excessive caching for index pages --- ext/index/main.php | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/ext/index/main.php b/ext/index/main.php index 2fe58742..c8a0273b 100644 --- a/ext/index/main.php +++ b/ext/index/main.php @@ -158,7 +158,16 @@ class Index extends Extension { $page_size = $event->get_page_size(); try { $total_pages = Image::count_pages($search_terms); - $images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms); + if(SPEED_HAX && count($search_terms) == 0 && ($page_number < 10)) { // extra caching for the first few post/list pages + $images = $database->cache->get("post-list-$page_number"); + if(!$images) { + $images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms); + $database->cache->set("post-list-$page_number", $images, 600); + } + } + else { + $images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms); + } } catch(SearchTermParseException $stpe) { // FIXME: display the error somewhere @@ -194,6 +203,24 @@ class Index extends Extension { $event->panel->add_block($sb); } + public function onImageAddition(ImageAdditionEvent $event) { + global $database; + if(SPEED_HAX) { + for($i=1; $i<10; $i++) { + $database->cache->delete("post-list-$i"); + } + } + } + + public function onImageDeletion(ImageDeletionEvent $event) { + global $database; + if(SPEED_HAX) { + for($i=1; $i<10; $i++) { + $database->cache->delete("post-list-$i"); + } + } + } + public function onSearchTermParse(SearchTermParseEvent $event) { $matches = array(); // check for tags first as tag based searches are more common.