Расшифровка отладочной информации

#
Re: Расшифровка отладочной информации
По поводу parent_group_id - действительно дал прирост но не большой.

НО решил обновиться, забэкапился, обновлялся а на версии 5.9.13 (Период технической поддержки истек 27.02.2011 г. Продлить поддержку.) - что делать это обновление только с оплаченной поддержкой работает??? как раз то где в УТФ переводиться все.

НО НО что самое интересное после обновлений:

Время выполнения: 7.616 с, из них
время инициализации необходимых модулей: 0.347 с;
время генерации содержания страницы: 7.449 с;
время соединения с СУБД: 0.000 с;
время выбора БД: 0.000 с;
время выполнения запросов: 1.539 с;
время обработки XML: 0.246 с.
Использовано памяти: 57.80 Мб
Количество запросов: 4176.
Компрессия: Отключена.
Кэширование: Отключено.

+2 сек

#
Re: Расшифровка отладочной информации
denisov999, по части увеличения времени выполнения запросов после обновлений - во1х, следует выполнить оптимизацию таблиц, во2х, не делать замеров сразу после обновления, подождать пока заполнится кеш SQL запросов в БД.
Ну и в3х, а вы попробовали поэкспериментировать с параметрами генерации xml, о которых я писал вам на предыдущей странице?
Заказов не беру. Консультирую редко.
#
Re: Расшифровка отладочной информации
С параметрами сейчас буду пробывать.

Пока прикрутил кэширование на фронтеде - весело стало работать отключил от кэша корзину и адмнку вото только одна незадача. Маленькая корзина которая на всех страницах - она тоже в кэш попадает. В ngnix можно отключить от кэширования определенные PHP скрипты наподобии:

<!--# include virtual="/cart.php/" wait="no" -->

Вот только вопрос??? а где же взять эту php-шку с маленькой корзиной
#
Re: Расшифровка отладочной информации
А, все понял чего вы хотите! А то я уже в соседней теме успел задать изумленный вопрос

Тут все просто. Вместо
<!--# include virtual="/cart.php/" wait="no" -->
вы пишите следующее
<!--# include virtual="/shop/cart/?refresh_little_cart" wait="no" -->


А потом идете в _настройки_ ТДС "Корзина", и ищете там обработчик ajax-добавления товара в корзину:
/* AJAX добавление товара в корзину */
if (isset($_GET['ajax_add_item_id']) && isset($_GET['count']))
{
   $param = array();
   $param['shop_id']
....

И над ним вставляете такой фрагмент кода:
/* обновление краткой корзины для кешированных страниц */
if (isset($_GET['refresh_little_cart']))
{
   // Отображаем краткую корзину
   $shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_little_cart']));
    
    // завершаем работу
   exit();
}

И все, этот код будет генерировать вам кусочек страницы с краткой корзиной для пользователя, который будет подхватываться Nginx'ом и вставляться в нужное место.
Заказов не беру. Консультирую редко.
#
Re: Расшифровка отладочной информации
Спасибо за корзинку. Правда SSI так и не завелся в nginx. Реализовал на Ajax. Пришлось толко дописать еще кодировку в ГОЛОВУ php-ке с корзиной.

Запустил кэширование. Просто улет! Ngin-X молодец!!! Впринцепе можно уже и не разбираться с с 5 секундами. Прописал в кроне обновление кэша всех страниц раз в 15 мин. - думаю чаще и не надо - теперь нагрузка на апачу упадет в миллионы раз. Он вообще будет робить раз в 15 минут, да в корзине и админке.
#
Re: Расшифровка отладочной информации
Обновление корзины на ajax я тоже делал, по сравнению с nginx вариантом это менее удобно, но на shared-хостингах, как правило, применим только ajax вариант.
Правда не понял зачем вам приписывать кодировку в php - в меня и так все работало.
Если не сложно, выложите свой способ, а я выложу свой, сравним
Заказов не беру. Консультирую редко.
#
Re: Расшифровка отладочной информации
$.ajax({  
url: "/shop/cart/?refresh_little_cart",  
cache: false,  
success: function(html){  
$("#cartAJAX").html(html);  
    }  
    });  


- это скрипт.

А потом диву задаете
<div id="cartAJAX"></div>
#
Re: Расшифровка отладочной информации
denisov999, ваш способ, пожалуй, удобнее.

Но выложу и свой вариант, как обещал. Когда я его писал, библиотека jQuery еще не входила в обязательном порядке в состав HostCMS, поэтому я постарался максимально обойтись комплектным javascript.

И так, в макете страницы, там где выводится краткая корзина, я писал следующее:
<div id="cart_placeholder">         
   <script type="text/javascript"><!-- //
      document.write("<p class='text-center'><img src='/skin/hyundai/images/ajax-loader.gif' alt='Пожалуйста, подождите' /><\/p>");
      RefreshCart("/");
      // -->
   </script>
   <noscript>
      <iframe src="/cart/?little_cart" class="little_cart"></iframe>
   </noscript>
</div>
где cart_placeholder это идентификатор блока, в котором будет помещаться код краткой корзины. На случай, если у пользователя отключен js корзина дублируется с помощью iframe

Js-функция RefreshCart() выглядит так:
function RefreshCart(shop_path)
{
   cmsrequest = shop_path + 'cart/?ajax_show_cart';
   sendRequest(cmsrequest, 'get', callbackfunction_AddIntoCart);   
   return false;
}
каллбэк использутеся штатный, от обработчика добавления товара в корзину

Ну и в настройках ТДС "Корзина", после обработчика ajax-добавления товара в корзину добавляется следующий код:
/* AJAX рефрешинг корзины*/
if (isset($_GET['ajax_show_cart']))
{
   // Отображаем корзину
   $JsHttpRequest = new JsHttpRequest('UTF-8');
   ob_start();
   $shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_little_cart']));
   $little_cart_html = ob_get_clean();
   $GLOBALS['_RESULT'] = array('cart' => $little_cart_html);
   echo $JsHttpRequest->LOADER;
   exit();
}

// iframe  рефрешинг корзины
if (isset($_GET['little_cart']))
{
   ob_start();
   $shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_little_cart_no_js']));
   $little_cart_html = ob_get_clean();
   echo $little_cart_html;
   exit();
}
С кодировкой проблем не возникало, потому что при отправке ajax-ответа кодировка указывается явно, а при отправке html для iframe кодировка указывается в этом html.
Заказов не беру. Консультирую редко.
Авторизация