好的,过去4到5个小时,我一直在Stack和其他地方逛逛,以寻求解决问题的方法。

我在一个包含5行信息的页面内有一个iframe,该信息是从数据库中获取的。所述信息将不断变化,因此需要每1-5秒刷新一次,如果需要可以延长到10秒。

我使用了下面的代码,该代码有效,但是由于某种原因使我的浏览器崩溃了,我想重新加载太快了吗?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
   var auto_refresh = setInterval(
   function ()
   {
      $('#info').load('mid.php');
   }, 5000); // refresh every 5000 milliseconds
</script>


下面是mid.php的代码(页面内有PHP,但这是我需要刷新的部分)。

<div id="info"><font size="2">
   <b>Crimes: </b><font color="white"><?php  if ($fetch->lastcrime <= time()){ echo  'Ready'; }else{   echo "".maketime($fetch->lastcrime).""; } ?></font><br>
   <b>GTA: </b><font color="white"><?php  if ($fetch->lastgta <= time()){ echo 'Ready'; }else{   echo "".maketime($fetch->lastgta).""; } ?></font><br>
   <b>Chase: </b><font color="white"><?php if ($fetch->last_chase < time()){ echo 'Ready'; }else{ echo "".maketime($fetch->last_chase).""; } ?></font><br>
   <b>Extortion: </b><font color="white"><?php if ($fetch->last_ext < time()){ echo  'Ready'; }else{ echo "".maketime($fetch->last_ext).""; } ?></font><br>
   <b>Rank:</b><?php echo "$fetch->rank"; ?></td></tr>
</div>
</table>


我知道我可以使用HTML刷新iframe,但是当屏幕的左上角每3秒刷新一次时,它看起来并不美观,非常感谢您的帮助。

谢谢

最佳答案

我希望您对这种事情使用Ajax调用。您会无条件地冻结jQuery以更新元素的内容,以免刷新iframe。 iframe的功能受到限制,仅将它们用于更新网页内容通常没有任何意义。

使用set internal可能导致浏览器崩溃。如果通话时间超过5秒,则可能会叠加多个通话。但是对于您的情况,我觉得这不是问题,因为它应该能够快速更新橙色。无论如何,一种更好的方法是为每次更新过程执行一次运行设置一个计时器。这样,如果调用时间太长,您就不会只是不断堆积请求。

关于javascript - 不断加载DIV?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41389562/

10-12 06:44