0

データベースからテキストを取り出してリンクとして div に表示する PHP コードがあります。私はその DIV を 3000 ミリ秒ごとに更新していますが、CPU 使用率は更新自体でわずか数パーセント高くなります。20 ~ 25 分間の絶え間ない更新の後、リンクの 1 つをクリックすると、そのページを開くのに約 20 秒かかり、その間にブラウザのタブがフリーズします。より多くの更新が発生します - リンクを開くのに時間がかかり、より多くのリンクが開かれる場合 (10 ~ 15 個のリンクが開かれると、次のページを開くのに 10 ~ 12 秒ほど遅くなります)。ブラウザがリンクを開こうとすると、1 つのプロセッサ スレッドが完全にロードされます。コードは次のとおりです(簡略化):

    <div id="map1"></div>

<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<div id="map1">

<?PHP


if (isset($_GET['m'])) {       

    $selectback = "SELECT parentid FROM MAP_LINK WHERE sysid = " . $_GET['m'];
    ................
    $rowb = ibase_fetch_row($query);        

    echo "<h6><a href=\"#\" id=\"back" . $rowb[0] . "\">BACK</a></h6><h4>
    <script>
       $('a#back" . $rowb[0] . "').click(function() {
           clearInterval(auto_refresh);    
               $(\"#map1\").load(\"test2.php?m=" . $rowb[0] . "\");

               auto_refresh = setInterval(function (){
               $(\"#map1\").load(\"test2.php?m=" . $rowb[0] . "\");}, 3000);

               });
               </script>";





     $select = "SELECT sysid FROM MAP_LINK WHERE parentid = " . $_GET['m'];
     .........................................                   

    $x = 0;
    while ($x < $total_rows) {
        $x++;
        $row = ibase_fetch_row($query);
        echo "<br><a href=\"#\" id=\"" . $row[0] . "\">Link # " . $row[0] . "</a>
        <script>
                $('a#" . $row[0] . "').click(function() {
                 clearInterval(auto_refresh);    
               $(\"#map1\").load(\"test2.php?m=" . $row[0] . "\");

               auto_refresh = setInterval(function (){
               $(\"#map1\").load(\"test2.php?m=" . $row[0] . "\");}, 3000);

               });
        </script>";

    }
} else {
    echo "<script>
$(document).ready(function(){
$(\"#map1\").load('test2.php?m=56');
auto_refresh = setInterval(function (){
$(\"#map1\").load(\"test2.php?m=56\");}, 3000);
});</script>";
}
?>

これは私が持っているのとほぼ同じコードです。データベースは、データが取得される 4 つのテーブルで構成されています。最初の 6 ~ 7 回のクリックで次のページが一瞬遅れることなく開きます。10 回目のクリックで遅れが始まり、追加のクリックまたは更新ごとに遅れが大きくなります。

私の質問は次のとおりです。どうすればすぐに、または少なくとも速く開くことができますか? コードにエラーがあります。動作しますが、CPU を大量に使用しており、ページをナビゲートできないほど遅くなっています。

ありがとうございました!

4

1 に答える 1