如何在没有实际页面刷新的情况下更新页面html和url
How to update page html and url without actual page refresh
我想知道是否有人能告诉我如何在不刷新页面的情况下更新页面html和url。
有没有现有的javascript库可以处理这一问题,或者有一本很好的书可以涵盖这类问题。
下面是一个使用这种效果的示例网站。
http://onedesigncompany.com/
请注意,当节和url发生更改时,实际的html是更新的,同时保持平滑过渡,没有可见的页面刷新。该网站在没有javascript的情况下也能正常工作。
此外,如果有人看到使用这种方法有任何不利之处,我会洗耳恭听。
如果您需要重新加载页面的一部分,而不重新加载整个页面,我强烈建议使用jQuery.Load()
:
http://api.jquery.com/load/
使用jQuery.load(),您可以选择一个div
并从另一个网页将内容重新加载到其中。例如:
$(".myDiv").load("/myOtherwebpage.html");
您还可以指定其他页面上特定元素的内容:
$(".myDiv").load("/myOtherwebpage.html .myOtherClass");
但是,如果您需要从另一个页面重新加载所有内容,并将URL更改为其他页面,那么我建议您链接到该页面。通过jQuery这样做不会带来任何性能上的好处。
有,它被称为PushState。
这是一种更新的技术,大多数最新的浏览器(不包括internet explorer:p)都支持它。基本上,它通过javascript更改地址栏。
我可能看起来一无所有,但它真的很整洁!例如,通常您会通过散列www.example.com#/contact
来执行此操作。
在我使用这项技术的最新项目中,我使用了一个名为History.js的js插件,whcih可以确定你的浏览器是否支持PushState。
根据这一点,我要么将事件绑定到相关链接,该链接执行pushstate和一些ajax,而不是加载新站点,要么让<a href="">
正常工作
这让所有浏览器都相当高兴。
基本上,我的脚本通过刷新创建了与pushstate和ajax相同的结果。
编辑:
只是你这个例子的旁注。制作非常巧妙:)
它通过ajax加载新页面并获得HTML,但如果您再次浏览该页面,它会重新显示获取的结果,这样就不会进行不必要的ajax调用。
- 如何在不刷新页面的情况下更新显示框
- 获取 HTML 5 音频控制文件位置并在不使用 id 选择器的情况下更新 src
- 在不重定向页面的情况下更新表
- Angular/UI路由器-如何在不刷新所有内容的情况下更新URL
- 如何在不按ctrl+F5的情况下更新我的Web应用程序(chrome、mozilla、IE8+)更改
- 可以在不重新加载页面的情况下更新javascript中的cookie
- 在不重新加载控制器的情况下更新路由
- 在不重新加载页面的情况下更新 URL 哈希
- 在不重新加载页面的情况下更新块中的内容
- 需要 Ajax 函数 - 在不刷新页面的情况下更新数据库
- 在不加载页面的情况下更新谷歌地图上的标记位置
- 在不刷新的情况下更新标签内的变量
- 在不超出页面的情况下更新数据库
- 如何在不使用映射的情况下更新视图模型
- 在不刷新页面的情况下更新 SQL 数据
- 如何在代码点火器中使用 websocket 在不刷新页面的情况下更新内容
- 如何在不刷新浏览器的情况下更新倒计时达到 0 时的日期
- 在不触发状态更改的情况下更新 URL
- 在不重新加载整个页面的情况下更新网页的特定区域
- GULP:如何在不刷新的情况下更新浏览器(仅适用于 CSS 更改)