如何在不重新加载页面的情况下刷新 div 和 mysql 代码

Posted

技术标签:

【中文标题】如何在不重新加载页面的情况下刷新 div 和 mysql 代码【英文标题】:how to refresh div and mysql code without reloading the page 【发布时间】:2016-11-08 01:16:53 【问题描述】:

嘿,我对此有点陌生,但我目前正在编写一个小游戏,并且我有一个使用 jquery、css 和 php 的健康栏。我使用 mysql 查询从数据库中获取健康值,它可以工作,但仅在我重新加载页面时才有效。我希望健康条的值在我希望的每 x 秒内不断更新。

< script >
  function UpdateStats() 
    $.getJSON('demo1.php', function(stats) 
      $('#pbar_innerdiv').animate(
        width: (stats.health) + '%'
      , 200);
    );

  , 1000; < /script>
#pbar_outerdiv 
  margin-top: 5px;
  margin-left: 90px;

#pbar_innertext 
  margin-top: 6px;
  margin-left: 7px;
<div id="pbar_outerdiv" style="width: 580px; height: 32px; border: 1px solid white; z-index: 1; position: relative; border-radius: 2px; -moz-border-radius: 5px;">
  <div id="pbar_innerdiv" style="background-color: maroon; z-index: 2; height: 100%; width: <?php echo $health;?>%;"></div>
  <div id="pbar_innertext" style="z-index: 3; position: absolute; top: 0; left: 0; width: 100%; height: 100%; color: white; font-weight: bold; text-align: center;">
    <?php echo $health;?>/100</div>
</div>

【问题讨论】:

这是 php 的样子 你的 setTimeout JS 函数在哪里? ", 1000;"在这里没有意义。 【参考方案1】:

像这样改变你的脚本

    < script >
      function UpdateStats() 
        $.getJSON('demo1.php', function(stats) 
          $('#pbar_innerdiv').animate(
            width: (stats.health) + '%'
          , 200);
        );

         setTimeout(function()UpdateStats(), 3000);
      

  UpdateStats();    

      < /script>

这个比 setinterval 更好,它会在第一个迭代完成时调用第二个迭代。希望对你有帮助

explanation: 首先它会在 UpdateStats() 完成后调用 UpdateStats() 函数,然后等待 3 秒然后调用第二次迭代。这个会重复做

【讨论】:

以上是关于如何在不重新加载页面的情况下刷新 div 和 mysql 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在不刷新整个页面的情况下重新加载组件?

如何在不刷新页面的情况下在 ReactJS 中重新加载?

如何在不重新加载整个页面的情况下重新加载 div?

如何在不刷新页面的情况下重新加载数据表?

如何在不刷新整个页面的情况下让 Grunt/Watch/LiveReload 重新加载 Sass/CSS?

在不重新加载的情况下向 div 添加/删除内容