gpt4 book ai didi

angularjs - AngularJS HTML5模式取代了hashbang降级为全页重新加载

转载 作者:行者123 更新时间:2023-12-03 11:43:33 26 4
gpt4 key购买 nike

通过在AngularJS中启用HTML5模式,$location服务将重写URL以从中删除哈希。这是一个很棒的功能,将对我的应用程序有所帮​​助,但是回退到hashbang模式存在问题。我的服务需要身份验证,因此我不得不从应用程序使用外部身份验证机制。如果用户尝试转到其中带有哈希字符的应用程序URL,它将首先将其重定向到身份验证页面(除非成功通过身份验证,否则不会触摸我的服务),然后将其重定向回我的应用程序。由于哈希标记仅在客户端可见,因此它将在路由到达我的服务器时丢弃路由的任何部分。一旦通过身份验证,他们可以重新输入URL,并且该URL将起作用,但是该初始时间将导致用户体验的中断。

那么我的问题是,对于不支持的浏览器,有没有办法从$location.html5Mode(true)变为整个页面重新加载的后备,而完全跳过AngularJS中路由的hashbang方法?

我想要的目标的可用实现的最佳比较是诸如在github.com上的文件夹中浏览之类的东西。如果浏览器支持在不启动页面刷新的情况下重写URL,则页面将异步加载必要的部分。如果浏览器不支持,则当用户单击文件夹时,将进行整页刷新。可以使用AngularJS代替使用hashbang模式来实现吗?

最佳答案

不要覆盖核心功能。

使用Modernizr,进行特征检测,然后进行相应操作。

检查历史记录API支持

if (Modernizr.history) {
// history management works!
} else {
// no history support :(
// fall back to a scripted solution like History.js
}

关于angularjs - AngularJS HTML5模式取代了hashbang降级为全页重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com