#actionscript-3 #apache-flex #air
#actionscript-3 #apache-гибкий #air
Вопрос:
Я использую некоторый HTTPService в AIR. Это занимает больше времени, чем я хотел бы загрузить. Действительно, для заполнения datagrid примерно 17000 строк требуется около 5 секунд. Есть ли способ сократить это время.
Спасибо
<?php
include 'functions.php';
require_once 'MySQL.php';
require_once 'conf.php';
header('Content-Type: text/xml');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_DATABASE);
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %sn", mysqli_connect_error());
exit();
}
// If a connection was established, run the query:
if ($dbc) {
// Define the query:
$q ='SELECT 20Patients_1012.paIndex, 20Patients_1012.paNomP, 20Patients_1012.paPrenom, 20Patients_1012.paCodePostal, 20Patients_1012.paDossier1, 20Patients_1012.paDossier2, 20Patients_1012.paNaissance, 20Patients_1012.paNumTel1, 30Traitemnt_201223.ttTStatutP, 30Traitemnt_201223.ttDateStatut, 12Praticien_02.prInitiales FROM 20Patients_1012 JOIN 30Traitemnt_201223 ON 20Patients_1012.paIndex = 30Traitemnt_201223.ttIndex JOIN 12Praticien_02 ON 30Traitemnt_201223.ttPraticien = 12Praticien_02.prIndex';
}
// Run the query:
$r = mysqli_query($dbc, $q);
$reponse = "<patients>";
// Confirm that some rows were returned:
if (mysqli_num_rows($r) > 0) {
// Fetch every row and print it as XML:
while ($row = mysqli_fetch_array($r, MYSQLI_NUM)) {
$reponse.="<patient><id>".$row[0]."</id>";
$reponse.="<pa>".utf8_encode($row[1])."</pa>";
$reponse.="<pr>".$row[10]."</pr>";
$reponse.="</patient>";
}
}
$reponse.="</patients>";
echo $reponse;
?>
Комментарии:
1. Вам действительно нужно получить все 17 тысяч записей за один большой вызов? Не могли бы вы получать их небольшими партиями?
2. Вы действительно профилировали его, чтобы увидеть, куда уходит все это время? Сколько времени занимает запрос, сколько времени занимает php? Насколько велик результирующий набор? Сколько времени требуется для перехода по проводам? 17k записей — это нетривиальный набор данных.