Javascript HTML5模式与哈希模式的优缺点AngularJS
在AngularJS 1.3中,在HTML5模式下需要Javascript HTML5模式与哈希模式的优缺点AngularJS,javascript,html,angularjs,Javascript,Html,Angularjs,在AngularJS 1.3中,在HTML5模式下需要标记,这让我思考HTML5模式与哈希模式的优缺点 使用散列模式,缺点是URL有点难看,如果您希望用户自己键入URL,那么URL就不直观。HTML5模式(1.3版)的缺点是需要标记,这会产生很多问题(比如让SVG的使用有点麻烦) 这两种模式还有其他我没有想到的缺点吗?使用历史API可以获得一个真实的URL,该URL可以包含服务器直接提供的适当内容 这: 允许您以正确的状态加载页面,即使用户访问的第一个页面不是主页。(这比在主页状态下加载它,然
标记,这让我思考HTML5模式与哈希模式的优缺点
使用散列模式,缺点是URL有点难看,如果您希望用户自己键入URL,那么URL就不直观。HTML5模式(1.3版)的缺点是需要
标记,这会产生很多问题(比如让SVG的使用有点麻烦)
这两种模式还有其他我没有想到的缺点吗?使用历史API可以获得一个真实的URL,该URL可以包含服务器直接提供的适当内容 这:
- 允许您以正确的状态加载页面,即使用户访问的第一个页面不是主页。(这比在主页状态下加载它,然后在阅读hashbang后用JS更改它要快)
- 为搜索引擎提供良好的内容以编制索引(不使用谷歌的可怕(现在已弃用))
- 允许URL工作,即使JavaScript不可用李>
- 古代浏览器中的作品
- 如果不投入精力构建一个服务器端回退,就不要假装有服务器端回退
也就是说,Angular对History API的使用非常糟糕 以下引述自: 使用这种模式需要在服务器端重写URL,基本上您必须重写所有指向应用程序入口点的链接(例如index.html) 这个建议太糟糕了。如果您使用的是history API,那么在编写服务器端代码时应该牢记这一点。通过将每个URL重写为一个HTML文档,而该文档只进行引导,而不做其他任何事情,就可以使服务器处理的不同URL变得毫无意义。您还完全依赖于JS,因为当服务器出现故障时,无法让服务器交付内容 简而言之,这种方法使用历史API纯粹是出于表面原因,然后使用肮脏的黑客来避免404错误 对于支持HTML5历史API的浏览器,$location使用HTML5历史API编写路径和搜索。如果浏览器不支持历史API,$location提供一个Hashbang URL 这是遵循哲学的结果,即历史API的存在是出于表面原因,而非实际原因。Angular没有使用服务器提供的常规页面,而是为每个资源使用两个URL(一个历史API和一个Hashbang) 使用HTML5模式需要在服务器端重写URL,基本上您必须重写所有指向应用程序入口点的链接(例如index.html)。在这种情况下,需要
标记也很重要,因为它允许AngularJS区分url中作为应用程序基础的部分和应用程序应该处理的路径
有关详细信息,请参阅