Javascript 如何在没有实际页面刷新的情况下更新页面html和url

Javascript 如何在没有实际页面刷新的情况下更新页面html和url,javascript,jquery,Javascript,Jquery,我想知道是否有人可以告诉我如何在不刷新页面的情况下更新页面html和url 是否有任何现有的javascript库可以处理这类问题?有一本介绍这类问题的好书 下面是一个使用该效果的示例站点 请注意,当节和url发生更改时,实际的html会更新,同时保持平滑过渡,没有可见的页面刷新。该网站在没有javascript的情况下也能正常工作 另外,如果有人看到使用这种方法的任何缺点,我会洗耳恭听。如果您需要重新加载页面的一部分,而不重新加载整个页面,我强烈建议使用jQuery。加载: 使用jQuery.

我想知道是否有人可以告诉我如何在不刷新页面的情况下更新页面html和url

是否有任何现有的javascript库可以处理这类问题?有一本介绍这类问题的好书

下面是一个使用该效果的示例站点

请注意,当节和url发生更改时,实际的html会更新,同时保持平滑过渡,没有可见的页面刷新。该网站在没有javascript的情况下也能正常工作


另外,如果有人看到使用这种方法的任何缺点,我会洗耳恭听。

如果您需要重新加载页面的一部分,而不重新加载整个页面,我强烈建议使用jQuery。加载:

使用jQuery.load,您可以选择一个div并从另一个网页将内容重新加载到其中。例如:

$(".myDiv").load("/myOtherwebpage.html");
您还可以指定其他页面上特定元素的内容:

$(".myDiv").load("/myOtherwebpage.html .myOtherClass");
但是,如果您需要从另一个页面重新加载所有内容,并将URL更改为另一个页面,那么我建议您链接到该页面。通过jQuery执行此操作不会带来性能方面的好处。

确实有,它被称为

这是一项最新的技术,大多数最新的浏览器internet explorer都不支持:p支持。基本上,它通过javascript更改地址栏

我可能看起来什么都不是,但它真的很整洁!例如,通常您会通过hash www.example.com/contact来完成此操作

在我使用这项技术的最新项目中,我使用了一个名为whcih的js插件,可以确定您的浏览器是否支持PushState

根据这一点,我要么将一个事件绑定到相关链接,该链接执行pushstate和一些ajax,而不是加载新站点,要么让事件正常运行。 这让所有的浏览器都很开心

基本上,我的脚本使用刷新创建的结果与使用pushstate和ajax创建的结果相同

编辑: 只是你那个例子的旁注。它做得很漂亮:
它通过ajax加载新页面并获取其HTML,但如果您再次浏览该页面,它会重新显示获取的结果,因此不会进行不必要的ajax调用。

可能会重复。也可以在页面右侧的相关列表中看到大量重复的内容。我特别感兴趣的是页面上的html是如何更新的。似乎不仅仅是修改url栏。这只是基本的JavaScript。您发布的示例实际上似乎在刷新页面。我猜他们正在使用或类似的东西检查页面转换,虽然这是我的第一次,但实际的html并没有更新,只是用脚本替换掉了。如果您查看源代码并浏览站点,您可以看到html的更改。@user1300321:源代码就是源代码,您不能使用javascript更改它。您似乎想要页面导航所做的一切,但不使用它。。。为什么???谢谢!我想就是这样!在马克回答之前,我会再研究一下这个问题。在你的编辑中:是的!我对那个网站印象深刻。从第一眼看,它似乎得到了完美的逐步增强,js也得到了很好的优化。非常聪明的东西。