繁体   English   中英

手动刷新与location.reload

[英]Manual refresh vs. location.reload

我的页面上有一个按钮(setarea),单击该按钮可设置会话变量。 页面上还有一些其他字段会根据此会话变量而更改。 这就是为什么每当单击该按钮时我都希望自动刷新整个页面,以便其他字段使用会话变量的新值刷新的原因。 这是我的代码:

        function setarea(){
            var area_id = jq("#splash_area").val();

            jq.ajax({
                type: 'POST',
                url: '<?php echo Mage::getBaseUrl(); ?>setsession/index/setarea',
                data: {area_id:area_id},
                success: function(data) {
                }
            });

            window.location.reload(true);

        }

使用此代码,页面将刷新,但会话变量不会刷新-它与以前一样。

有趣的是,当我使用F5进行手动刷新时,页面会正确刷新。

我在这里做错了什么?

由于AJAX是异步的,因此,一旦发出AJAX请求,便会立即触发reload JS不等待对AJAX请求的响应。 将调用reloadsuccess函数内部。

function setarea(){
  var area_id = jq("#splash_area").val();

  jq.ajax({
      type: 'POST',
      url: '<?php echo Mage::getBaseUrl(); ?>setsession/index/setarea',
      data: {area_id:area_id},
      success: function(data) {
          window.location.reload(true);
      }
  });
}

尝试更换

window.location.reload(true);

header("Location: YourFile.php");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM