Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации
Вопросы и ответы

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Поиск по сайту









Интересное в сети

Sape — это система купли-продажи ссылок
с главных и внутренних страниц сайтов
Публикации
Кеширование
Кеширование блоков


Суть: снизить нагрузку на базу - в блоке запросы будут "включаться" только каждые 3 часа, например.




Проделаем оптимизацию для блока block-Pages.php

1.1. Создаем папку Kesh в корне сайта
1.2. Кидаем в нее два файла ИмяМодуля-conf.php и  ИмяМодуля-kesh.php
В нашем случае это будет block-Pages-conf.php такого содержания
PHP - Код
1
2
3
<?php
$live
= 1; //позже мы исправим единичку
?>


и block-Pages-kesh.php
PHP - Код
1
2
3
4
<?php
if (!defined("FUNC_FILE")) die("Illegal File Access");
$content = ""; //тут будет хранится кеш
?>

1.3. Назначаем права 666 на block-Pages-kesh.php


2.1. Модифицируем блок. В принципе тело остается таким же. Немного только добавлений... (всё прокомментировано)
PHP - Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
if (!defined('BLOCK_FILE')) {
    
Header("Location: ../index.php");
    exit;
}
//конец начала, которое было

//начало вставки1
$block_name = substr(basename(__FILE__), 0, -4);
require_once (
"Kesh/".$block_name."-conf.php");
$prinu = intval($_GET['prinu']);
$live = $live - mktime() + filemtime("Kesh/".$block_name."-kesh.php");
if (
$live<0  OR $prinu=="1") {
//конец вставки1

//тело блока, которое было
    
global $prefix, $db;
    
$strip = 25;
    
$result = $db->sql_query("SELECT pid, title FROM ".$prefix."_pages ORDER BY pid DESC LIMIT 5");
    while(list(
$pid, $title) = $db->sql_fetchrow($result)) {
        
$linkstrip = cutstr($title, $strip);
        
$content .= "<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\"><tr><td><img src=\"images/blocks/Pages.gif\" title=\"$title\"></td><td><a href=\"index.php?name=Pages&op=page&pid=$pid\" title=\"$title\">$linkstrip</a></td></tr></table>";
    }
//конец тела, которое было

//начало вставки2
        
$fp = fopen("Kesh/".$block_name."-kesh.php", "w");
        
$content1 = "<?php\nif (!defined(\"FUNC_FILE\")) die(\"Illegal File Access\");\n\n $"."content = \"".addslashes($content)."\";\n?>";
        
fwrite($fp, $content1);
        
fclose($fp);
} else {
    require_once (
"Kesh/".$block_name."-kesh.php");
}
//конец вставки2

//ну это тоже было
?>



3.1. Запустим страницу с блоком, что бы создался кеш - т.е. обновим страницу, на которой присутствует этот блок 1-2 раза, что бы блок не был пустым.
3.2. Установим время жизни block-Pages-conf.php например 3 часа, причем звездочки-умножения для удобства можно оставить
Код
1
$live = 60*60*3;



Ну и напоследок.
Я не стал перегружать блок всякими проверками на наличие файлов, что бы не потерять эффекта, так что делайте всё внимательно.

Принудительно  обновить кеш можно, передав на страницу с блоком через адресную строку
Код
1
prinu=1



Дата публикации: 13.08.2007
Прочитано: 7633 раз
[ Назад | Начало | Наверх ]
Комментарии

Sнэйк
Дата: 16.08.2007 | Комментарий: 2
SнэйкРеспект. Обязательно воспользуюсь
Koc
Дата: 13.08.2007 | Комментарий: 1
KocОгромное спасибо. Только сегодня АПнул тему http://www.slaed.net/forum/index.php?showtopic=10692 и уже готовое решение. Кулл!
Вы не можете отправить комментарий анонимно, пожалуйста зарегистрируйтесь.
Календарь 3 в 1
- М - Г + Г + М
Июнь, 2018
пнвтсрчтптсбвс
123
45678910
11121314151617
18192021222324
252627282930
Купить.
Можно в кредит на 90 дней!
Навигация
»» RSS
Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Вопросы и ответы | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул

Rambler's Top100

Генерация страницы: 0.199 сек. и 18 запросов к базе данных за 0.017 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.