| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Constantine 15.08.2004 00:47
Я нашёл в чём проблема! Большая часть времени тратиться на вывод таблицы парсером. Когда я закомментировал все ^.menu{}, то страница начала создаваться за 0,25 секунд против 0,56 с выводом результатов.$offers[^table::sql{
SELECT
$separateThingsToSelect
$fromWhere[
FROM
`catalogue_course_description` as catalogue,
`course_offerings` as offer
WHERE
(
(catalogue.cName = offer.cName)
AND
(catalogue.cNumber = offer.cNumber)
)
AND
(
`course_year` = ^form:uri2.int[]
AND
`course_term` = '^form:uri3.match[_][g]{ }'
AND
`offer`.`cName` = '$form:uri4'
)
]
$fromWhere
}]
$catalogue[^table::sql{
SELECT
$commonThingsToSelect,
COUNT(CONCAT(offer.cName, offer.cNumber)) as `offers`
$fromWhere
GROUP BY offer.cName, offer.cNumber
}]
$offersColumns[^offers.columns[]]
$catalogueColumns[^catalogue.columns[]]
$catalogueColumns[^catalogueColumns.select($catalogueColumns.column ne "offers")]
<table border="1">
<tr>
^catalogueColumns.menu{
^switch[$catalogueColumns.column]{
^case[Title]{ <th style='width:12em^;'>$catalogueColumns.column</th>}
^case[Description]{ <th style='width:16em^;'>$catalogueColumns.column</th>}
^case[DEFAULT]{^untaint{<th>$catalogueColumns.column</th>}}
}
}
^offersColumns.menu{^untaint{<th>$offersColumns.column</th>}}
</tr>
#initialise
$offersLeft($catalogue.offers)
$showCommon($offersLeft)
^offers.menu{
<tr>
^if($showCommon){
^if($showCommon > 1){
$tdParam[ rowspan="$showCommon" valign="top"]
}{
$tdParam[]
}
^catalogueColumns.menu{
^untaint{<td$tdParam>$catalogue.[$catalogueColumns.column]</td>}
}
}
^offersColumns.menu{
^untaint{<td>$offers.[$offersColumns.column]</td>}
}
</tr>
^offersLeft.dec[]
^if($offersLeft == 0){
^catalogue.offset(1)
$offersLeft($catalogue.offers)
$showCommon($offersLeft)
}{
$showCommon(0)
}
}
<tr>
<td colspan='^eval( ^catalogueColumns.count[] + ^offersColumns.count[] )'>Total number of offerings: ^offers.count[]</td>
</tr>
</table>