例如,在reddit.com上,当您从主页上单击个人资料时,它不会重定向。
答案 0 :(得分:1)
这是单页应用程序或SPA的示例。 SPA根据客户端的需要动态加载内容,并使用它来更新页面。这可能包括更新浏览器URL以模拟页面之间的导航。正如您所注意到的,由于缺少重定向,SPA通常被认为具有更流畅的用户体验。 Vue.js是致力于创建SPA的Web框架示例,如果您有兴趣探索更多内容。
答案 1 :(得分:0)
有许多策略可以更新页面的内容,而无需实际的重定向或刷新整个页面,因此这里可能列出的策略太多。
我假设您没有使用任何前端框架,例如Vue / React / Elm等,所以我将讨论整体策略,这应该为如何入门打下基础。
首先让我们建立一个简单的示例:
<html>
<head></head>
<body>
<nav>
<a href="/page-1.html> Page One </a>
<a href="/page-2.html> Page Two </a>
<a href="/page-3.html> Page Three </a>
<a href="/page-4.html> Page Four </a>
</nav>
<div id="stage">
<!-- Updated content goes here -->
</div>
<div id="footer"></div>
</body>
好的,这里有一个简单的HTML文档,其中包含三个“节”,导航,舞台和页脚。
本质上,您将使用纯JavaScript或什至一点点JQuery使用新内容更新id =“ stage” div的innerHTML。
MDN拥有关于Javascript基本原理的很好的文档,并且与DOM
一起工作StackOverflow,有更多详细的细分,例如HERE
您将侦听任何超链接“单击”事件,并防止任何重定向,获取新内容,然后使用新内容更新id =“ stage” innerHTML。
您很可能希望挂接到History API,以便您的用户可以按期望使用其后退和前进按钮。
您可以使用纯JS或JQuery之类的帮助程序库,通过AJAX请求来获取新内容,以响应“ click”事件。
您需要设计网站,以这种方式工作,并确保您请求的内容与您网站的设计和布局兼容。
您可以通过AJAX获取完整页面的内容,然后用全新的文档替换当前文档。这样做可能会带来一些好处,例如预取/缓存,更平滑的过渡,但是在更新内容时可能会导致“刷新”。