SQL

Статус
В этой теме нельзя размещать новые ответы.
Я позволю себе повториться ->Если теги не выводить (вырезать кусок из шаблона) задержка на глаз не заметна.Т.е. всё происходит с приемлимой скоростью.<-
I.e. мы выбрасываем из странички именно тот блок,код которого приведен - две/три текстовые ссылки на каждую из картинок.
Ссылки в дивах - т.е. таблицы,графика - всё остается тем же. IMHO проблема именно в связке.
 
I.e. мы выбрасываем из странички именно тот блок,код которого приведен - две/три текстовые ссылки на каждую из картинок.
Ссылки в дивах - т.е. таблицы,графика - всё остается тем же. IMHO проблема именно в связке.

В связке проблема быть не может, если уж при убирании этого кода страница начинает быстрее грузиться, то проблема и есть в этом коде. Хотя ничего я такого уж тормозного в нем не вижу. Проблема где-то вне него. Может быть, в самом Smarty.
 
В смысле Смарти болен или неправильно настроен?
 
Ещё раз. Нужно замерить скорость генерации страницы с этим кодом и без него. Причём не на глаз.
 
Попробуйте сгенерить после запроса к БД ХТМЛ текст, а потом его вывести, те не выводить по строчно, а создать строку одну со всем ответом и вывести...
 
Ещё раз. Нужно замерить скорость генерации страницы с этим кодом и без него. Причём не на глаз.

Начал мерять время
Всё описывать не стану - много слов + мало информации
Результат:
В конце кода есть фрагмент (передаем переменные в шаблон)

$kwords=my_tags($_REQUEST['UID']);
STemplate::assign('vtags',$kwords);

До него - generation time 0.048157 sec
вся страничка - generation time 10.870851 sec

но если заремить STemplate::assign('vtags',$kwords);
то Page generation time 0.167758 sec - вся страничка

то есть :
геморрой начинается когда Smarty начинает в ЦИКЛЕ внутри шаблона вызывать теги,
причём если рефрешить страничку, она может несколько раз вывестись за нормальное время, но раньше или позже опять начинает тупить.
поставил
$compile_check = false;
если рефрешить страничку или прыгать по однотипным - 0.2 сек
если покурить и попробовать рефрешить - опять надцать(до сорока) секунд....
бред какой то.
$cache_lifetime = 3600;
$force_compile = false;
clear_cache нигде не применяется
юзеров на сайте мах 2-3 одновременно .... вот опять затупило
 
Пока не увижу код, ничего больше сказать не смогу.
 
Код целиком....

Код:
<?php
session_start();

include("include/config.php");
include("include/function.php");

if($_REQUEST['UID']=="")$err="{$language[541]}";
if($err=="")
{
	if($_REQUEST['type']!="private") $_REQUEST['type']="public";
	$uuu = $_REQUEST['UID'];
	$ttt = $_REQUEST['type'];
	
	if($page=="")
		$page = 1;
	$sql = "SELECT count(*) as total from media WHERE media_type = 'video' and active = '+' AND UID=$uuu and type='$ttt' limit $config[total_per_ini]";
	$ars = $conn->Execute($sql);
	if($ars->fields['total']<=$config['total_per_ini'])$total = $ars->fields['total'];
	else $total = $config[total_per_ini];
	$tpage = ceil($total/$config['items_per_page']);
	if($tpage==0) $spage=$tpage+1;
	else $spage = $tpage;
	$startfrom = ($page-1)*$config['items_per_page'];
	
	$sql="select * from media WHERE media_type = 'video' and active = '+' AND UID=$uuu and type='$ttt' order by VID desc limit $startfrom, $config[items_per_page]";
	$rs=$conn->execute($sql);
	if($rs->recordcount()>0)$vdo = $rs->getrows();
	$start_num=$startfrom+1;
	$end_num=$startfrom+$rs->recordcount();
	
	$page_link="";
	for($k=1;$k<=$tpage;$k++) {if ($k==$page)$page_link.="<a style='text-decoration:none' href='uvideos.php?UID=$_REQUEST[UID]&page=$k&type=$_REQUEST[type]'>[<b>$k</b>]</a>&nbsp;&nbsp;"; else $page_link.="<a style='text-decoration:none'href='uvideos.php?UID=$_REQUEST[UID]&page=$k&type=$_REQUEST[type]'>$k</a>&nbsp;&nbsp;";}
}

STemplate::assign('err',$err);
STemplate::assign('msg',$msg);
STemplate::assign('page',$page);
STemplate::assign('start_num',$start_num);
STemplate::assign('end_num',$end_num);
STemplate::assign('page_link',$page_link);
STemplate::assign('total',$total);
STemplate::assign('answers',$vdo);
$kwords=my_tags($_REQUEST['UID']);
STemplate::assign('vtags',$kwords);
STemplate::assign('head_bottom',"viewuserlinks.tpl");
STemplate::display('head1.tpl');
STemplate::display('err_msg.tpl');
STemplate::display('uvideos.tpl');
STemplate::display('footer.tpl');

?>
и темплейт
HTML:
<tr>
  <td align="center" valign="top">
    <table width="760" align="center"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height=10>
          &nbsp;</td>
      </tr>
      <tr>
        <td width=760 height=250> {if $total gt "0"}
          <div class="filler_bottom">
          </div>
          <table cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
            <tbody>
              <tr vAlign=top>
                <td class="filler_right">
                  <table cellSpacing=0 cellPadding=0 width="520" align=center border=0>
                    <tbody>
                      <tr>
                        <td></td>
                        <td width="520">
                          <div style="width:520px;">
                            <table width="520"  border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td width="5" height="24" class="header_table_back_left">
                                  </td>
                                <th class="header_table_back">
                                  <div align="left">
                                    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                                      <tr>
                                        <td class="tbl_headline_bold">
                                        {insert name=id_to_name assign=uname un=$smarty.request.UID}
                                         {$language[475]} // {$uname}
                                         </td>
                                        <td width="150" class="tbl_headline_regular">
                                          {$language[2]} {$start_num}-{$end_num} {$language[3]} {$total}</td>
                                      </tr>
                                    </table>
                                  </div>
                                </th>
                                <td width="5" class="header_table_back_right">
                                  </td>
                              </tr>
                            </table>
                          </div>
                          <div class="general_table_back" style="width:520px;"> {section name=i loop=$answers}
                            <div style="width:520px;">
                              <table cellSpacing=0 cellPadding=4 width="100%" border=0>
                                <tbody>
                                  <tr vAlign=top>
                                    <td align=middle width="130">
                                      <a href="{$baseurl}/view_video.php?viewkey={$answers[i].vkey}">
                                        <img class=moduleEntryThumb height=120 src="{$baseurl}/include/imageresizer.php?i={$tmburl}/1_{$answers[i].VID}.jpg"></a></td>
                                    <td>
                                      <div class=moduleEntryTitle>
                                        <a href="{$baseurl}/view_video.php?viewkey={$answers[i].vkey}">{$answers[i].title}</a>
                                      </div>
                                      <div class=moduleEntryDescription>
                                        {$answers[i].description}
                                      </div>
                                      <div class=moduleEntryTags> {$language[4]}: {insert name=media_keyword assign=tags vid=$answers[i].VID} {section name=j loop=$tags}
                                        <a href="{$baseurl}/search_result.php?search_id={$tags[j]}">{$tags[j]}</a> &nbsp; {/section}
                                      </div>
                                      <div class=moduleEntryDetails> {insert name=time_to_date assign=todate tm=$answers[i].addtime}
                                        <p>
                                          {$language[5]} {$todate} 
                                        </p>
                                        <p> {$language[6]} {$answers[i].duration|string_format:"%.2f"} | {$language[7]} {$answers[i].viewnumber} | {insert name=comment_count assign=commentcount vid=$answers[i].VID}
                                          {$language[8]} {$commentcount}
                                        </p>
                                        <p style="VERTICAL-ALIGN: middle">
                                          {$language[9]} {insert name=show_rate assign=vrate rte=$answers[i].rate}{$vrate}
                                        </p>
                                      </div></td>
                                  </tr>
                                </tbody>
                              </table>
                            </div><br /><br />{/section}
                          </div> 
                          <div>
                            <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td valign="top">
                                  <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                    <tr>
                                      <td width="5" height="4" class="footer_table_back_left"></td>
                                      <td class="footer_table_back">
                                        &nbsp;
                                      </td>
                                      <td width="5" class="footer_table_back_right"></td>
                                    </tr>
                                  </table></td>
                              </tr>
                            </table>
                          </div><div>
                            <table cellSpacing=0 cellPadding=0 width="100%" border=0>
                              <tbody>
                                <tr vAlign=top>
                                  <td>
                                    <div class=moduleTitle>
                                      {$language[11]} {$page_link}
                                    </div></td>
                                </tr>
                              </tbody>
                            </table>
                          </div></td>
                        <td></td>
                      </tr>
                    </tbody>
                  </table></td>
                <td width=220 valign=top>
                  <table cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
                    <tbody>
                      <tr>
                        <td width="100%" align="top">
                          <table border=0 cellspacing=0 cellpadding=0>
                            <tr>
                              <td height="24">
                                <table width="220"  border="0" cellspacing="0" cellpadding="0">
                                  <tr>
                                    <td width="5" height="24" class="header_table_back_left">
                                      </td>
                                    <th class="header_table_back" align="left">
                                        <span class="tbl_headline_bold">
                                          {$language[13]}
                                        </span>
                                    </th>
                                    <td width="5" class="header_table_back_right">
                                      </td>
                                  </tr>
                                </table></td>
                            </tr>
                          </table></td>
                      </tr>
                    </tbody>
                  </table>
                  <table border=0 cellspacing=0 cellpadding=0 width="100%" class="general_table_back">
                    <tr>
                      <td valign=top>
                        <div style="padding-left:10px;"><br />{section name=k loop=$vtags}
                            -&nbsp;<a style="FONT-SIZE: 12px" href="{$baseurl}/search_result.php?search_id={$vtags[k]}">{$vtags[k]}</a>
                            <br />
                         {/section}<br />
                        </div></td>
                    </tr>
                  </table>
                  <table cellSpacing=0 cellPadding=0 width="220" align=center border=0>
                    <tbody>
                      <tr>
                        <td width="100%" align="top">
                          <table border=0 cellspacing=0 cellpadding=0>
                            <tr>
                              <td valign="top">
                                <table width="220" border="0" cellspacing="0" cellpadding="0">
                                  <tr>
                                    <td width="5" height="4" class="footer_table_back_left"></td>
                                    <td class="footer_table_back">
                                      &nbsp;
                                    </td>
                                    <td width="5" class="footer_table_back_right"></td>
                                  </tr>
                                </table></td>
                            </tr>
                          </table></td>
                      </tr>
                    </tbody>
                  </table></td>
              </tr>
            </tbody>
          </table></td>
      </tr>
      </tbody>
    </table> {else}
    <center>
      <b>{$language[599]}</b>
    </center> </td></tr></table>{/if}</td>
</tr>
<tr>
  <td height=5>
    &nbsp;</td>
</tr>
 
Как вот эта функция устроена my_tags(); ?

З.Ы. И ещё, не удержался... Вот это какой смысл несёт? if($_REQUEST['type']!="private") $_REQUEST['type']="public";
 
Как вот эта функция устроена my_tags(); ?
Код:
function my_tags($uid)
{
  global $conn;
  $query = "select distinct t.keyword from tags t left join tag2media t2m on t2m.TID=t.id left join media m on t2m.VID=m.VID where m.UID='".$uid."' order by keyword asc";
  $list="";
  $i=0;
  $rs=$conn->execute($query);
  while(!$rs->EOF)
  {
    $list[$i] = $rs->fields['keyword'];
    $i++;
    $rs->movenext();
  }
  if($list!="")
    return $list;
}
З.Ы. И ещё, не удержался... Вот это какой смысл несёт? if($_REQUEST['type']!="private") $_REQUEST['type']="public";


Это сделано не с нуля , а из чужого хлама, многие куски я не трогал по принципу - а хрен с ним - не мешает.Как я понимаю затычка для перехода с пустым параметром , тут такого много.

Добавлено через 8 минут
Попробуйте сгенерить после запроса к БД ХТМЛ текст, а потом его вывести, те не выводить по строчно, а создать строку одну со всем ответом и вывести...
Спасибо, я понимаю, но IMHO это будет не решение, а уход от проблемы.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху