我的脚本导致无限循环

时间:2016-12-26 14:20:04

标签: javascript jquery loops reload

首先:我是一个新手。这些函数是我写过的第一个函数。我使用Wordpress(网站上使用的最重要的插件名为BuddyPress)。我本质上希望脚本做的是从我的数据库中删除一些内容,然后在按某个链接时重新加载页面一次。没什么。

我的Internet Explorer存在问题,我的页面陷入无限循环。 Chrome上根本不会出现此问题。我有一个包含以下内容的PHP:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="hidden" id="hidden">

<input type="text" id="input">

按下链接时,将运行以下脚本:

<li><a id="edit" href="#" onclick="runUpdateForm();">Uppdatera profil</a></li>

在我的函数文件中找到以下内容:

<!--Javascript runUpdateForm-->
<script type="text/javascript">
function runUpdateForm() {
    $.post ( ajaxurl, {
      action:'resetUser',
          user_id:jQuery("#user_id").val()
          });
    window.location.reload();
}
</script>
<!--End Javascript runUpdateForm-->

在谷歌搜索了一下后,我发现了以下一段代码,我把它放在了location.reload()上面:​​

function resetUser() {
  $user_id=get_current_user_id();  
  global $wpdb;   
  $wpdb->query("DELETE FROM wp_profile_updates WHERE user_id='".$user_id."'");
  die(); // close the connection
}

add_action('wp_ajax_resetUser', 'resetUser'); // add action for logged users
add_action( 'wp_ajax_nopriv_resetUser', 'resetUser' ); // add action for unlogged users

这使得无限循环消失了,但它仍然在Internet Explorer中重新加载一次,与Chrome的比较以及我实际想要发生的事情。

抱歉我的英语不好。我是瑞典人: - )

我很感激帮助。我需要有知识的人告诉我他们是否立即看到任何看起来很疯狂且应该改变的东西。我的问题可能与我网站上发生的其他事情有关。

的问候。

1 个答案:

答案 0 :(得分:2)

您的代码执行:启动ajax,然后重新加载。由于ajax是异步的,它永远不会发布到服务器,它会被重新加载打断。所以你需要等待ajax:

<script type="text/javascript">
function runUpdateForm() {
  $.post ( ajaxurl, {
     action:'resetUser',
     user_id:jQuery("#user_id").val()
      },function(){
        // executed on success
        window.location.reload();
      });
 }
 </script>

另外,我想知道ajaxurl的定义在哪里......