javascript - 从页面重新加载 DIV,而不更改页面

标签 javascript php jquery html

我只想每 5 到 10 秒从我的页面重新加载 DIV,因为这是数据输入的时间,我不想重新加载完整页面,只重新加载 DIV。

这是我尝试过的,但由于某种原因它弄乱了我所有的页面格式:

<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 () {
          $('#blocoCorrente').load('#blocoCorrente');
      }, 1000);
      </script>
      </p>

这是我的 DIV 的一部分:

 <div class="blocoCorrente" id = "blocoCorrente">
      <!-- Imprimir os valore dos sensor 1 -->
      <p class="p0-blocoCorrente">Corrente 1:
      <?php 
        $id = $_SESSION['userId']; 

        $dBname = "infosensor";
        $conn = mysqli_connect($servername, $dBUsername, $dBPassword, $dBname);

        $sql = "SELECT * FROM `$id` ORDER BY id DESC LIMIT 1;";
        $result = mysqli_query($conn, $sql);
        $resultCheck = mysqli_num_rows($result);

        if($resultCheck > 0)
        {
          while ($row = mysqli_fetch_assoc($result))
          {
            //echo "".$row['sensor1']."A";
            $ss1 = intval($row['sensor1'] * ($p = pow(10, 2))) / $p;
            echo "".$ss1."A";
            $s1 = $row['sensor1'];
          }
        }
      ?>
      </p>

最佳答案

.load() needs a URL发出 AJAX 请求来获取数据。附加选择器是可选的,用于从响应中过滤掉信息。像这样的事情:

$('#blocoCorrente').load('yourPage.php #blocoCorrente');

您的测试可以证实这一点,但我怀疑可能需要进一步采取措施。我怀疑这会将新的 #blocoCorrente 元素放置为现有 #blocoCorrente 元素的,从而创建一个不断增长的层次结构ID 重复。

如果情况确实如此,作为一种快速解决方案,您可以简单地包装 #blocoCorrente 元素并使用该包装元素作为目标。像这样的事情:

<div id="blocoCorrente-container">
    <div id="blocoCorrente">
        ...
    </div>
</div>

然后在你的 JavaScript 中:

$('#blocoCorrente-container').load('yourPage.php #blocoCorrente');
<小时/>

值得注意的是,整个页面都会被处理并返回,这使得效率相当低。对于像这样重复执行的操作,您可能希望提高其效率并且仅请求/返回更新的数据。

下一步,考虑创建一个单独的页面,返回构建标记所需的数据,最好是 JSON 格式。然后使用 jQuery 的 $.get() 发出 AJAX 请求以获取该数据,并在回调中使用 JavaScript 代码,该代码使用该数据修改现有的页面标记。

改进设计和效率的进一步步骤可能是研究一种名为 WebSockets 的技术的使用,其中服务器仅在数据更新时主动将更新的信息推送到浏览器。这将大大减少发出的 HTTP 请求的数量。

关于javascript - 从页面重新加载 DIV,而不更改页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633179/

相关文章:

php - 在 WooCommerce 3 中将自定义列添加到管理产品列表

javascript - 将 Javascript 函数转换为 AngularJS 函数

javascript - 如何在不重复的情况下附加或预先添加要在一页上多次使用的 div 文本?

php - 动态隐藏显示

javascript - 如何使用模优化函数?

php - 强制 PHP 显示完整的 MySQL 查询

javascript - 如何使用 Bootstrap 禁用幻灯片中的左右箭头

javascript - 在 JavaScript 中解析 MySQL 日期

javascript - 带有表单的动态模态 - 未定义的发布数据

Javascript onclick提示保存值