[英]URL-based single page app nav in pure JavaScript?
我正在尝试使用JavaScript编写单页Web应用程序。 所需行为:
http://myapp.example.com
(主页)或该域之外的任何其他URL时,他们的浏览器会下载1个大型HTML文件(以及相关的JS / CSS /图像文件,等等。)。 -> 这么大的前期下载 <div>
元素,每个元素代表一个不同的“页面”。 在任何给定时间仅显示1个“页面” div 我想知道如何做到这一点。 我非常喜欢基于jQuery的内容,而不是尝试编写本地化的内容。 但是,如果我必须自己编写此代码,则可以使用以下1 HTML文件的一般结构:
<html>
<head> ... </head>
<body>
<div id="home" class="page">
<!-- Content for home page, say http://myapp.example.com/#home. -->
</div>
<div id="about" class="page">
<!-- Content for About page, say http://myapp.example.com/#about. -->
</div>
<div id="contact" class="page">
<!-- Content for Contact page, say http://myapp.example.com/#contact. -->
</div>
<!-- Etc. for all other "pages" -->
</body>
</html>
我如何:
您可以使用并设置window.location.hash
并将该值用于$("#yourDivId").show()
和$("#yourDivId").hide()
。
在onload
您可以$("#yourDivId").show()
所请求的div(如果没有请求, $("#yourDivId").hide()
默认值),而$("#yourDivId").hide()
是其他div。
并且在每个链接上,直接更改哈希值并将请求的div设置为可见。 或设置一个计时器,以检查某个时间间隔上的哈希值以查看哈希值是否已更改。 (没有本地onhashchange事件。)
我认为您应该在开始时隐藏每个div。
$(div#page).hide();
然后,您可以使用以下方法检查当前的UR1:
var pathname = window.location.pathname;
每次用户更改URL时:首先隐藏每个div,然后检查并显示所需的div。
这就是单页应用程序框架存在的原因。 我认为值得学习其中的一些,例如AngularJS或BackboneJS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.