[英]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.