Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/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
Backbone.js 从服务器端呈现页面时保持状态_Backbone.js_Pushstate_Singlepage - Fatal编程技术网

Backbone.js 从服务器端呈现页面时保持状态

Backbone.js 从服务器端呈现页面时保持状态,backbone.js,pushstate,singlepage,Backbone.js,Pushstate,Singlepage,我目前正在使用backbone.js构建一个单页应用程序 为了使所有的应用程序页面都可以访问和爬网,我确保服务器端在直接访问页面时也可以呈现页面 问题如下: 当pushState不可用时,它使用当前URL启动路由器(例如,如果我使用路由器访问URL,则会在该URL上构建哈希片段) 因此: 是否有任何处理方法(除了重定向使用之外) 如果您在JS(使用pushState功能检测)后立即重定向,您仍然会遇到URL没有哈希符号的问题 一般来说,有没有更好的方法来设计这种应用程序 谢谢如果SEO友好型浏览

我目前正在使用backbone.js构建一个单页应用程序

为了使所有的应用程序页面都可以访问和爬网,我确保服务器端在直接访问页面时也可以呈现页面

问题如下: 当pushState不可用时,它使用当前URL启动路由器(例如,如果我使用路由器访问URL,则会在该URL上构建哈希片段)

因此:

  • 是否有任何处理方法(除了重定向使用之外)
  • 如果您在JS(使用pushState功能检测)后立即重定向,您仍然会遇到URL没有哈希符号的问题
  • 一般来说,有没有更好的方法来设计这种应用程序


    谢谢

    如果SEO友好型浏览对你来说很重要,我认为逐渐形成的共识是“推送状态”或“不推送”(即降低Web1.0的性能,同时放弃哈希爆炸式路由)

    我之所以不使用Backbone.js而只使用PJAX是因为pushstate和DOM呈现时间非常好,只需很少的js就可以成为一个页面,而hash-bang路由一直都相当粗糙

    因此,一种选择是不同时使用主干网的路由器,只让PJAX(或DJAX或类似的东西)做路由工作,让主干网只做内部页面事件/呈现工作(即验证表单、模式窗口等)