Автоматическое обновление таблицы Html каждые x секунд

Я пытаюсь обновить таблицу, которую я имею, поскольку переменные в ней постоянно обновляются, и я хочу повторно обновлять эту переменную каждые несколько секунд. Я уже сделал код с моей стороны, указав таблицу id и создав для этого div. Код объяснит, что я на самом деле. Заранее спасибо ! EDITED: добавлен Var Table и Var Refresher. однако код по-прежнему не перезагружает мой стол! Любые идеи?

test.php

<html> <head> <script type='text/javascript'> var table = $('#tableID'); // refresh every 5 seconds var refresher = setInterval(function() { table.load("1103242B/processing/js.php"); }, 5000); setTimeout(function() { clearTimeout(refresher); }, 1800000); </script> </head> <body> <?php include_once'js.php'; ?> </body> </html> 

JS.php

 <?php require_once 'connect.php'; include 'start.php'; include 'functions.php'; header("Cache-Control: no-cache,no-store"); $query = "SELECT * FROM opentrades"; //You don't need a ; like you do in SQL $result = mysql_query($query); echo "<table border = '1px' id='tableID'>"; // start a table tag in the HTML echo "<tr><td>" . "Order Number" . "</td><td>" . "Selection" . "</td><td>" . "Date" . "</td><td>" . "Type" . "</td><td>" . "Size" . "</td><td>" . "Bid Price" . "</td><td>" . "Offer Price" . "</td><td>" ."Stop Loss" . "</td><td>" . "Take Profit" . "</td><td>" ."Profit/Loss(USD)"."</td><td>" ."Close"."</td></tr>" ; //$row['index'] the index here is a field name while($row = mysql_fetch_assoc($result)){ //Creates a loop to loop through results if ($row['selection']=='eur/usd')// TO RETRIEVE BID AND OFFER FOR EACH ROW { $bidpricepl=$bid; $offerpricepl=$bid1; } elseif ($row['selection']=='usd/jpy') { $bidpricepl=$bid2; $offerpricepl=$bid3; } elseif ($row['selection']=='usd/cad') { $bidpricepl=$bid4; $offerpricepl=$bid5; } elseif ($row['selection']=='eur/jpy') { $bidpricepl=$bid6; $offerpricepl=$bid7; } elseif ($row['selection']=='eur/chf') { $bidpricepl=$bid8; $offerpricepl=$bid9; } elseif ($row['selection']=='gbp/usd') { $bidpricepl=$bid10; $offerpricepl=$bid11; } elseif ($row['selection']=='aud/usd') { $bidpricepl=$bid12; $offerpricepl=$bid13; } elseif ($row['selection']=='usd/chf') { $bidpricepl=$bid14; $offerpricepl=$bid15; } if ($row['type']=="buy") { $minipipskiller='10'; $offeropen=$row['offerprice']; $pips=$offerpricepl-$offeropen; $closedb=$offeropen; $pips1=round($pips, 6); $pips2 = str_replace('.', '', $pips1); if ($pips2<0) { $pips2 = str_replace('-', '', $pips2); $pips2 = ltrim($pips2, '0'); $pips2 = -1 * abs($pips2); } else { $pips2 = ltrim($pips2, '0'); } $pips3=$pips2/$minipipskiller; }// PIP COUNTING elseif ($row['type']=="sell")//FOR PIP COUNTING { $minipipskiller='10'; $bidopen=$row['bidprice']; $pips=$bidopen-$bidpricepl; $closedb=$bidopen; $pips1=round($pips, 6); $pips2 = str_replace('.', '', $pips1); if ($pips2<0) { $pips2 = str_replace('-', '', $pips2); $pips2 = ltrim($pips2, '0'); $pips2 = -1 * abs($pips2); } else { $pips2 = ltrim($pips2, '0'); } $pips3=$pips2/$minipipskiller; } $ticksize= "0.0001";// FOR PROFIT AND LOSS $lot1 = "100000"; $sizecalc=$row['size'] * $lot1; if ($row['type']=="buy") { $profitandloss=$sizecalc*$ticksize*$pips3; //per TRADE } if ($row['type']=="sell") { $profitandloss=$sizecalc*$ticksize*$pips3; //per TRADE } $zero= '0'; if($profitandloss<$zero) { $profitText = "<div style=\"color: red;\">$profitandloss</div>"; } elseif ($profitandloss>$zero) { $profitText = "<div style=\"color: green;\">$profitandloss</div>"; } $sum+= $profitandloss; echo "<tr><td>" . $row['trade_id'] . "</td><td>" . $row['selection'] . "</td><td>" . $row['date'] . "</td><td>" . $row['type'] . "</td><td>" . $row['size'] . "</td><td>" . $row['bidprice'] . "</td><td>" . $row['offerprice'] . "</td><td>" . $row['stoploss'] . "</td><td>" . $row['takeprofit'] . "</td><td>" . $profitText . "</td><td><a href ='delete.php?id=". $row['trade_id']."'>X</a> </td></tr>"; $profitandloss=0; if($sum<$zero) { $sumText = "<div style=\"color: red;\">$sum</div>"; } elseif ($sum>$zero) { $sumText = "<div style=\"color: green;\">$sum</div>"; } } echo "</table><br>"; ?> 

Я думаю, что setInterval с jQuery.load – это тот, который вы ищете

 var table = $("#tableID"); // refresh every 5 seconds var refresher = setInterval(function() { table.load("/path/to/js.php"); }, 5000); 

Или сократите его с помощью

 var refresher = setInterval(table.load.bind(table, "/path/to/data"), 5000); 

Если вы когда-нибудь захотите прекратить обновление данных (например,), скажите, что пользователь оставляет страницу открытой в течение длительного времени

 // stop refreshing after 30 minutes setTimeout(function() { clearTimeout(refresher); }, 1800000); 

Если ваша загрузка данных занимает некоторое время, вам может потребоваться обновить X секунд после загрузки данных. Вы можете сделать это так, используя setTimeout

 var table = $("#tableID"); var refresh = function() { table.load("/path/to/js.php", function() { setTimeout(refresh, 5000); }); }; refresh(); 

Только мои 2 цента, но это просто кажется ненужной нагрузкой, чтобы поразить ваш бит. Я бы подумал о чем-то вроде триггера и написал что-то менее дорогое, как

 bool = timestamp > now; or if(myhash != tablehash) 

Поэтому ваш длинный опрос просто спрашивает, что-то изменилось и не выполнил запрос

+ Изменить

 $('#tableID').replaceWith($(data)); 

В

 $('#tableID').replaceWith(data); 

Хотя вещь, которую вы делаете, это загрузка некоторых вещей в элемент. Таким образом, семантически, используя .load (), звучит лучше.

 $('#tableID').load('some/url/file.php')