【问题标题】:My script is causing infinite loop我的脚本导致无限循环
【发布时间】:2016-12-26 14:20:03
【问题描述】:

首先:我是一个完全的新手。这些函数是我编写的第一个函数。我使用 Wordpress(网站上使用的最重要的插件称为 BuddyPress)。我基本上希望脚本从我的数据库中删除一些东西,然后在按下某个链接时重新加载页面。仅此而已。

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

<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-->

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

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

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

history.pushState("", document.title, window.location.pathname + window.location.search);

这使得无限循环消失了,但它仍然在 Internet Explorer 中重新加载一次,与 Chrome 和我真正想要发生的情况相比。

对不起,我的英语很差。我是瑞典人:-)

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

问候。

【问题讨论】:

  • 嗯,那里似乎没有什么特别不合适的地方
  • @Bryant Jackson:你可以在给出错误评价之前自己学习......

标签: javascript jquery loops reload


【解决方案1】:

您的代码会:启动 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 是在哪里定义的......

【讨论】:

  • 这本身也给了我一个无限循环。我将它与“history.pushState(”“,document.title,window.location.pathname + window.location.search);”结合起来(我把它放在 windows.location.reload();)之上。非常感谢您的解决方案! Ajaxurl 在我的标题中定义。我应该从那里删除它吗?
猜你喜欢
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 2021-05-07
  • 2012-08-24
  • 2020-11-16
  • 1970-01-01
相关资源
最近更新 更多