Как ускорить загрузку странички? (на странице нужны только ID сессии и доступ к базе)

Главные вкладки

Аватар пользователя Yusuke Yusuke 15 июля 2010 в 12:57

Есть страничка, на которой ничего нету.
Всё что она делает, это записывает пришедшие, через GET параметр, значения в сессию.

Если делать как обычную страничку, то она загружается 700мс... и это на локальном компе! Что просто не допустимо

Мне на страничке нужно только работать с сессией, то есть только нужен ID сессии
И нужен доступ к базе, на случай, если придётся лезть в базу.

В результате страничка должна грузиться (на локальном компе) не больше 100мс

Но как это сделать, я не знаю Sad

Очень нужно, подскажите пожалуйста.

Комментарии

Аватар пользователя Yusuke Yusuke 15 июля 2010 в 13:50

Есть страничка А
С неё, на страничку Б отправляется AJAX запрос с GET параметром (www.site.com?param=1)
На страничке Б значение $_GET["param"] записывается в сессию

И эта примитивная операция у меня обрабатывается 700мс.
То есть подключается куча всякой ерунды (модули и так далее)
Тормоза жудкие

я нашёл bootstrap.inc
Но:
1) этот файл с продифинированными настройками глобальный
2) Параметров там море. какие из них, и в какой комбинации, как влияют на производительность я не знаю. При этом не понятно какие ещё значения могут принимать эти настройки.
Если кто-то знает что следует во что установить, чтобы достичь должной производительности, буду очень благодарен.
3) Реально ли вообще отконфигурировать только для 1 странички?
4) Реально ли вообще добиться на друпале обработки страницы за <= 100 мс?
5) Нельзя ли просто подключить ядро, сессию, и базу?

Аватар пользователя Yusuke Yusuke 15 июля 2010 в 16:58

RxB wrote:
"Yusuke" wrote:

5) Нельзя ли просто подключить ядро, сессию, и базу?

Идём в API, читаем про стадии бутстрапа
Открываем cron.php, много думаем
Делаем как надо

Спасибо.
Заработало. Но пока не совсем.

Если я создаю файл прямо в деректории друпала "http://localhost/drupal/", то всё замечательно

<?php

$db_url 

'mysql://***:***localhost/drupal';
require_once 
'./includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
print(
session_id());

?>

Но этот файл (Б) у меня находиться в папки модуля "http://localhost/drupal/sites/all/modules/uberkart_cp/ajax/check_cb.php"
( Модули у меня не подключаются )

В этом файле я пишу:

<?php

$db_url 

'mysql://***:***localhost/drupal';

chdir("../../../../../");
require_once 
'includes/bootstrap.inc';

drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
print(
session_id());

?>

В результате работает. НО почему-то на этих страницах у меня разные сессии.
http://localhost/drupal/check_cb.php (Правельная сессия. Та, что и на всех страницах)
http://localhost/drupal/sites/all/modules/uberkart_cp/ajax/check_cb.php (Сессия анонимного пользователя)
Обе сессии в базе я вижу. Одна как авторезированный пользователь, другая как анонимный.

Как можно грамотно обойти эту систему безопасности. (если проблема в ней)?

Аватар пользователя kosilko kosilko 15 июля 2010 в 14:04

"Yusuke" wrote:
На страничке Б значение $_GET["param"] записывается в сессию

И эта примитивная операция у меня обрабатывается 700мс.

С помощью чего вы это реализовывали? Что возвращает страничка Б, если ее открыть в браузере? Может она у вас делает нужную работу, а потом рендерит контент с блоками "в никуда"?

Аватар пользователя Yusuke Yusuke 16 июля 2010 в 10:14

Проблему решил так:

<?php

$_SERVER

["SCRIPT_NAME"] = "/drupal/index.php"// типа файл находится там-же, где и index.php
$db_url 'mysql://***:***localhost/drupal';

chdir("../../../../../");

require_once 

'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);

?>