javascript—为什么任何更新都不能在使用ajax的js文件中工作?

eimct9ow  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(351)

我正在与一个php文件名用户合作。为此,我编写了一些javascript程序。最初javascript代码运行良好,但在更新javascript代码后,它们不再工作。
这里是php文件(users.php):

<div class="wrapper">
  <section class="users">
    <header>
      <?php 
        include_once("php/config.php");
        $sql = mysqli_query($conn,"SELECT * FROM users WHERE unique_id={$_SESSION['unique_id']}");
        if( mysqli_num_rows($sql) > 0 ){
          $row = mysqli_fetch_assoc($sql);
        }          
      ?>
      <div class="content">
        <img src="php/images/<?php echo $row['img'] ?>" alt="" />
        <div class="details">
          <span><?php echo $row['fname']." ".$row['lname'] ?></span>
          <p><?php echo $row['status'] ?></p>
        </div>
      </div>
      <a href="#" class="logout">Logout</a>
    </header>
    <div class="search">
      <span class="text">Select an user to start chat</span>
      <input type="text" placeholder="Enter name to search..." />
      <button><i class="fas fa-search"></i></button>
    </div>
    <div class="users-list">         

    </div>
  </section>
</div>
<script src="javascript/users.js"></script>

这里是js文件(users.js):

//1st part
          const searchBar = document.querySelector(".users .search input");
         searchBtn = document.querySelector(".users .search button");

         searchBtn.onclick = () => {
            searchBar.classList.toggle("active");
            searchBar.focus();
             searchBtn.classList.toggle("active");
          };    

         //2nd part
         setInterval(() => {
           console.log("habib");
            // let's start Ajax
              let xhr = new XMLHttpRequest(); //creating xml object
              xhr.open("GET", "php/users.php", true);
              xhr.onload = () => {
                 if (xhr.readyState === XMLHttpRequest.DONE) {
                    if (xhr.status === 200) {
                        let data = xhr.response;
                         console.log(data);
                     }
                   }
              };
              // we have to send through ajax to php
             xhr.send();
       }, 500);

我第一次写第一部分js程序时,它们工作得很好。但是在写第二部分后,它们就不工作了。我以前也遇到过同样的问题。重新启动我的电脑,问题就解决了。但我想知道为什么会这样?
控制台显示以下错误。。

byqmnocz

byqmnocz1#

不确定这是否是正确答案,但可能这只是你的浏览器的问题,特别是如果你使用chrome浏览器。通常,chrome倾向于缓存大量js和css文件以供以后参考。这对需要下载这些文件一次的用户来说是好的,并且可以更快地加载页面,因为他们已经有了这些文件,但这对web开发人员来说是一场噩梦。要解决此问题,您可以:
使用ctrl+f5强制重新加载页面
更改文件名,以便强制chrome重新加载页面
更改浏览器,并使用一些较轻的浏览器,如edge或firefox
要检查这个问题,您只需在浏览器中打开js和css文件,进行一些更改并尝试重新加载代码;如果你使用chrome,你会发现除了上面的一个解决方案,代码将保持不变

相关问题