У меня есть таблица (сеанс) в базе данных, которая имеет почти 72 000 строк. Я извлекаю эти строки с помощью php + mysql, но когда результат возвращается в HTTPService, мне нужно подождать около 32 секунд, прежде чем все строки начнут появляться в DataGrid сразу.
Вопрос
Есть ли способ, с помощью которого DataGrid может начать отображать данные один за другим, в то время как приложение может извлекать следующие строки параллельно. Или что DataGrid может отображать данные сотнями. Например, когда приложение запускается, оно может показывать первые 400 записей в DataGrid, затем следующие 400 сотен извлекаются, пока не будут извлечены все 72 000 строк?
Или я могу задействовать многопоточность, чтобы один поток мог отвечать за отображение данных в сетке данных, а другой, выполняющийся параллельно, может отвечать за извлечение следующих данных из базы данных?
Большое спасибо, ребята, как всегда.
<mx:HTTPService id="populateTable" url="request.php" method="POST" resultFormat="e4x">
<mx:request xmlns="">
<getResult>table</getResult>
</mx:request>
</mx:HTTPService>
код из файла PHP
function populateTable()
{
$Result = mysql_query("SELECT * FROM session" );
$Return = "<Sessions>";
while ( $row = mysql_fetch_object( $Result ) )
{
$Return .= "<session><no>".$no."</no>" .
"<srcIP>".$row->srcIP."</srcIP>" .
"<dstIP>".$row->dstIP."</dstIP>" .
"<sPort>".$row->sPort."</sPort>" .
"<dPort>".$row->dPort."</dPort>" .
"<sessionID>".$row->sessionID."</sessionID>" .
"<numberOfConnections>".$row->numberOfConnections."</numberOfConnections>" .
"</session>";
}
$Return .= "</Sessions>";
// mysql_free_result( $Result );
echo $Return;
}