Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url web应用中的PathLocationStrategy与HashLocationStrategy_Url_Web Applications_Angular_Hashbang_Angular2 Routing - Fatal编程技术网

Url web应用中的PathLocationStrategy与HashLocationStrategy

Url web应用中的PathLocationStrategy与HashLocationStrategy,url,web-applications,angular,hashbang,angular2-routing,Url,Web Applications,Angular,Hashbang,Angular2 Routing,使用以下各项的优缺点是什么: PathLocationStrategy-默认的“HTML5PushState”样式 HashLocationStrategy——“hashURL”样式 例如,使用HashLocationStrategy将阻止通过元素的#ID滚动到元素的功能,但某些第三方插件需要HashLocationStrategy或Hashbang#以便在ajax网站中工作 我想知道哪个Web应用程序提供了更多功能。对我来说,主要区别在于路径定位策略需要在服务器端对@RouteConfig中配

使用以下各项的优缺点是什么:

  • PathLocationStrategy-默认的“HTML5PushState”样式
  • HashLocationStrategy——“hashURL”样式
  • 例如,使用HashLocationStrategy将阻止通过元素的#ID滚动到元素的功能,但某些第三方插件需要HashLocationStrategy或Hashbang#以便在ajax网站中工作


    我想知道哪个Web应用程序提供了更多功能。

    对我来说,主要区别在于
    路径定位策略
    需要在服务器端对
    @RouteConfig
    中配置的所有路径进行配置,以重定向到Angular2应用程序的主HTML页面。否则,当您尝试在浏览器中重新加载应用程序或尝试使用特定URL访问应用程序时,将出现一些404错误

    这里有一个问题可以给你一些提示:

    希望它能帮助你, Thierry

    #
    只能在客户端上处理,服务器只会忽略它们。这可能会导致搜索引擎(SEO)出现问题,重定向可能会导致重复页面重新加载。 这个页面有一些详细的解释,而一些参数不适用于角度应用程序(例如,不适用于JS禁用)

    HTML5 pushstate的“缺点”是它需要服务器支持,正如Thierry所解释的那样。

    根据官方说法:

    当路由器导航到新的组件视图时,它会使用该视图的URL更新浏览器的位置和历史记录。这是一个严格的本地URL。浏览器不应将此URL发送到服务器,也不应重新加载页面

    路径定位策略 现代HTML5浏览器支持
    history.pushState
    ,这是一种在不触发服务器页面请求的情况下更改浏览器位置和历史的技术。路由器可以组成一个“自然”URL,它与需要加载页面的URL无法区分

    以下是路由到
    xyz
    组件的HTML5pushState样式的URL:
    localhost:4200/xyz/

    HashLocationStrategy 较旧的浏览器在位置URL更改时向服务器发送页面请求,除非更改发生在
    之后(称为散列)。路由器可以通过在应用程序中使用哈希组合路由URL来利用此异常

    这里有一个散列样式的URL,它路由到
    xyz
    组件:
    localhost:4200/src/#/xyz/

    我想知道哪一个提供更多的网络应用程序

    几乎所有角度项目都应使用默认的HTML5样式,如下所示:

  • 它生成用户更容易理解的URL
  • 它保留了以后进行服务器端渲染的选项
  • 在服务器上呈现关键页面是一种技术,可以极大地提高应用程序首次加载时的感知响应能力。一个需要10秒或更长时间启动的应用程序可以在服务器上呈现,并在不到一秒钟的时间内交付到用户的设备

    只有当应用URL看起来像正常的Web URL(中间没有散列)时,这个选项才是可用的。


    除非你有充分的理由求助于哈希路由,否则请坚持默认值。

    很抱歉,这个答案完全没有抓住要点。它没有提到设置额外的服务器端渲染和缓存(同构渲染)的可能性以及这会带来多少好处。与其评估技术,不如描述您遇到的问题的解决方案。