为什么我从浏览器修改html/js时会多次发送ajax请求

why is ajax request sent multiple time when I modify the html/js from the browser

本文关键字:请求 ajax js 浏览器 修改 html 为什么      更新时间:2023-09-26

我遇到了一个非常奇怪的问题,首先是我的代码:

<!DOCTYPE html>
<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
</head>
<body>    
  <a href="#" onclick="supprimerMembre('1')">Supprimer</a>
  <script>
  function supprimerMembre(id) {
    $.post({
      url: 'whateverlink.com',
      data: 'id='+id,
      success: function(data) {
      }
    });
  }
  </script>
</body>
</html>

因此,如果我打开页面并单击链接"supprimer",一切都很好,但一旦我手动修改传递给"supprimerMemre"的id,就会发生一些真正奇怪的事情,请求会发送两次,一次是用新id,另一次是旧id,如果我再次修改,它们将是三个请求!等等(我修改id的次数和发送的请求次数一样多)任何人都可以帮助我,这让我疯了!

在Chrome 50、IE11、Edge和Firefox 46.0.1中测试了以下代码后,这似乎取决于实现,(目前)只出现在Chrome 50中。

function myFunction(id) {
  console.log(id);
}
<a href="#" onclick="myFunction(1)">Click Me</a>

开发人员工具无法保证修改DOM的行为,因此如何处理这一问题完全取决于工具背后的人员。在Chrome的情况下,他们似乎为给定的事件添加了一个新的事件处理程序。类似于这样做:

element.addEventListener('click', function() {
  return supprimerMembre('8456');
});