CANPAN ブログ検索
Loading
  • もっと見る
<< 2019年08月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
カテゴリアーカイブ
最新記事
最新コメント
ウェブブラウザで画面表示が遅い [2017年12月03日(Sun)]
ウェブブラウザで画面表示が遅い


 画面表示が途中で一時停止し、結果として遅いということです。

 サーバーの環境の話からします。

 家庭内LANだけで使用する「Linuxサーバー」を立ち上げています。セキュリティとか怖いので、この「Linuxサーバー」はインターネットには接続していないで使っています。

 現在、下のソフトを使用しています。
postgresql-9.6.6-1.fc27.x86_64
httpd-2.4.29-1.fc27.x86_64
php-7.1.12-1.fc27.x86_64

 いつからかは、はっきりしないのですが、自分で「php」を使って書いたプログラムを表示するときに、しばらく休憩するようなものを見つけました。

 そのプログラムに複雑な処理をさせて時間がかかるのならば納得できますが、簡単なプログラムなので訳がわかりません。

 例えば、衣類を管理するときに、最初の画面で「上半身」と「下半身」を選択してクリックし、次の画面で「ソックス」とか「パンツ」を選ぶというプログラムです。

 下のような簡単なプログラムなのに、最初の「上半身」と「下半身」を選択する画面で、「上半身」を表示してから「下半身」を表示するまで時間がかかるときがありました

<!--- form 開始 --->
<form method="post" action="index.html_add.php">
<input type="radio" name="kubun_select" value="上半身" checked="checked">上半身<br>
<input type="radio" name="kubun_select" value="下半身">下半身<br>
<input type="submit" value="衣類着用部位 選択開始"><br>
<!--- form 終了 --->
</form>

 ウェブブラウザで閲覧したときに、表示速度に満足している「php」を使って書いたプログラムも、たくさんあります。

 「php」を高速化するために、ネットで調べたりしました。

 次のページを見つけて、書いてあることを実行しましたが不具合は解消しませんでした。

PHP プログラムの見直しによる高速化

 どこが違うのかと見比べているうちに、今日になって、画面で表を作成しているか、いないかの違いがあることに気がつきました。

 無駄な表を作成しても仕方がありません。

 しばらく考えて、「メニュー表」を最初に表示して、「上半身」と「下半身」を選択する手助けをすることにしました。

 「メニュー表」には、「下半身」に該当するものに「ソックス」とか「パンツ」があると表示します。

<table border>

<tr>
<td>No</td>
<td align=center>部位</td>
<td align=center>区 分</td>
</tr>

<?php
// 繰り返し開始
for ($i = 0 ; $i < $rows ; ++$i) {
$retu_0 = pg_fetch_result($result,$i,0);
$retu_1 = pg_fetch_result($result,$i,1);
?>
<tr>
<?php
if ($retu_0 === "上半身") {
?>
<td align=right BgColor=lime><?php print($i + 1); ?></td>
<td BgColor=lime><?php print($retu_0); ?></td>
<td BgColor=lime><?php print($retu_1); ?></td>
<?php
} else {
?>
<td align=right BgColor=yellow><?php print($i + 1); ?></td>
<td BgColor=yellow><?php print($retu_0); ?></td>
<td BgColor=yellow><?php print($retu_1); ?></td>
<?php
}
?>
</tr>
<?php
// 繰り返し終了
}
?>
</table border>


 車を管理するプログラムも同じ不具合がありましたのでので、最初に車種一覧の表を作成して選択する手助けをすることにしました。

<table border>

<tr>
<td>No</td>
<td align=center>車 名</td>
<td align=center>状態</td>
</tr>

<?php
// 繰り返し開始
for ($i = 0 ; $i < $rows ; ++$i) {
$retu_2 = pg_fetch_result($result,$i,2);
$retu_3 = pg_fetch_result($result,$i,3);
?>
<tr>
<?php
if ($retu_3 === "使用") {
?>
<td align=right BgColor=lime><?php print($i + 1); ?></td>
<td BgColor=lime><?php print($retu_2); ?></td>
<td BgColor=lime><?php print($retu_3); ?></td>
<?php
} else {
?>
<td align=right BgColor=yellow><?php print($i + 1); ?></td>
<td BgColor=yellow><?php print($retu_2); ?></td>
<td BgColor=yellow><?php print($retu_3); ?></td>
<?php
}
?>
</tr>
<?php
// 繰り返し終了
}

?>
</table border>

<!--- form 開始 --->
<form method="get" action="saibu.php">
<p>車名:<br>
<select name="shashu_select">
<?php
// 繰り返し開始
for ($i = 0 ; $i < $rows ; ++$i) {
$retu_1 = pg_fetch_result($result,$i,1);
$retu_2 = pg_fetch_result($result,$i,2);
?>
<option value="<?php print($retu_1); ?>"><?php print($retu_2); ?></option>
<?php
// 繰り返し終了
}
?>
</select></p>
<input type="submit" value="車種 設定開始"><br>
<!--- form 終了 --->
</form>
※「method="post"」ではなく、「method="get"」を使用しているのは、「<A Href=」を使用しているためです。特定のページを新しいウィンドウで表示させるために必要となります。「method="post"」を使っても同じことができそうですが、私にとって今後の課題とします。

<td><A Href="search.php?item=<?php print(pg_fetch_result($result,0,1)); ?>&shashu_select=<?php print $shashu_select; ?>"><?php print("$str"); ?></A></td>

※「if ($retu_3 === "使用") {」は、(車を)「使用」か「廃棄」かでセルの色を変えるためのものです。


 あまりにも簡単なプログラムでは、処理に時間を割いてくれないということでしょうか。

 表を作成して、少しは気に掛けてくれとアピールしたら、気を引くのに成功したようなものでしょう。

 本当に、よくわからないけれど、「結果オーライ」ということにして、しばらく様子を見ることにします。

Posted by 山田 雄一郎 at 23:17
この記事のURL
http://blog.canpan.info/hofu_nanboku/archive/397
プロフィール

山田 雄一郎さんの画像
山田 雄一郎
プロフィール
ブログ
リンク集
http://blog.canpan.info/hofu_nanboku/index1_0.rdf
http://blog.canpan.info/hofu_nanboku/index2_0.xml