JS加载完页面再刷 的实现原理

URL改变了,页面却不会刷新,会等JS加载完了再刷新 的实现原理是什么啊

facebook的URL很奇怪
他的URL改变了,页面却不会刷新,会等JS加载完了再刷新
有人知道怎么实现的吗

刘锡涛
刘锡涛
281
编辑于2012-08-25
评论 (2)链接2012-08-25 
  • 0 支持
    给个地址看下吧。 – 始终不够 2012-08-25
  • 0 支持
    gmail 也是这样的 – 色色 2012-08-25

fb和google只是修改了url,为了方便你复制分享,实际并没有载入新页面而是用ajax来实现页面局部更新

可以用

  
window.location.hash

或者 history.pushState function

  
<script type="text/javascript">
var stateObj = { foo: "bar" };
function change_my_url()
{
history.pushState(stateObj, "page 2", "bar.html");
}
var link = node.getElementByID('click');
link.addEventListener('click', change_my_url, false);
</script>

and a href:

  
<a href="#" id='click'>Click to change url to bar.html</a>

改变浏览器URL但不载入新页面

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (1)链接 • 2012-08-25
  • 0 支持
    原来是这样...厉害 – clschen 2012-08-25
  • 社区维基

    0 票

  • Thinking80s
    115

主要使用了location.hash方式,通过绑定window的hashchange事件来监控页面内跳转事件,这种方式大多用在单页面应用中,对用户的体验比较好,不会像传统页面同步请求中会存在页面白屏的等待。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-08-26
德问是一个专业的编程问答社区,请 登录注册 后再提交答案