使用.on(“hashchange”,...)来触发单个页面应用程序中的页面更改?

时间:2017-02-19 01:03:06

标签: javascript jquery url web

我想知道使用像

这样的东西是不好的做法
window.location.hash = '#example';

并且有这个:

$(window).on('hashchange', function() {
    if (window.location.hash) {
        navigateToHashUrl(window.location.hash);
    }
});

function navigateToHashUrl(hashUrl) {
    if(hashUrl == '#example') {
        goToExamplePage();
    } else if ...
    ...
}

委托将使用$()。load('html')加载页面的实际方法?

在某些情况下,在我的网络应用中,前端会发送请求,如果一切正常,后端将回复指示更改哈希网址的数据。在那些情况下,我使用这种东西。

我不明白为什么这会是不好的做法,但我是web-dev的新手,想知道我是否正在做任何我不应该做的事情。

谢谢!

1 个答案:

答案 0 :(得分:0)

单页面应用程序(spa)的真正好处是根据与用户的交互动态更改屏幕的各个部分。限制自己让后端服务器应用程序管理页面转换似乎是有限的。

最近的spa我已经开发了一次html引导程序,然后客户端应用程序驱动进程,根据用户交互请求数据。

你可以做你正在做的事情,但我同意评论,这些评论表明你可能最好使用路由器来提供便利。

就个人而言,我会尝试摆脱“页面”思维模式并使用后端通过RESTful api提供数据。毕竟,这就是它被称为单页应用程序的原因。