对location.href的赋值何时生效?

时间:2016-03-13 20:02:53

标签: javascript url window.location

我正在尝试了解对location.href进行分配后事件的年表。 似乎赋值本身不会停止执行当前的js调用堆栈,因此可以连续尝试多个赋值。 such a code的语义是什么:

<!doctype html>
<script>
  var h=location.href;
  location.href="http://google.com";
  location.href=h+"#ok";
</script>

是否可以保证浏览器会执行两个HTTP GET? 是否保证它们将按顺序排列? 浏览器会等到执行堆栈结束吗? 这两项任务是否会导致两个单独的“onblur”事件? 我注意到在Chrome中我的上述示例会导致broswer在地址栏中显示“vanisoft.pl/~lopuszanski/public/redirect_test.html”,然后重定向到谷歌,但如果我更改了最后一行是:

location.href=h;

然后有一个infinite loop

如果有多个js会影响单页应用中的路由,那么这个问题非常实用。

0 个答案:

没有答案