Javascript SPA路由hashchange和反向重载

Javascript SPA routing hashchange and back reloading

本文关键字:重载 hashchange SPA 路由 Javascript      更新时间:2023-09-26

所以我有我的spa和hashchange,我将加载一个新的。html文件到我的

问题是,当我点击后退按钮时,我不想通过。html文件重新加载,因为我想保留我在视图模型中单击或更改的设置或项目(我正在做MVVM)。
下面,如果我点击clickAbout函数,它会转到about页面,但是当我回到主列表时,所有的设置都丢失了,因为它被重新加载了。最好的方法是什么?我想我可以使用cookie,或者我可以直接在主页上加载视图模型。

        function clickAbout() {
            location.hash = "#about";
        }
            $(window).bind('hashchange', function (e) {
            var locationHashStr = window.location.hash.substr(1).split('&')[0];
            $("#divContent").load("/Content/" + locationHashStr + ".html");
        });
        $(document).ready(function () {
            if (window.location.hash) {
                var locationHashStr = window.location.hash.substr(1).split('&')[0]
                $("#divContent").load("/Content/" + locationHashStr + ".html");
            }
            else {
                location.hash = "#assetlist";
            }
        });

你需要使用pushstate

请看https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history