Новости | 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>