Tag: 单页面应用程序浏览

JavaScript:DOM相关代码的最佳实践是否同时执行服务器和客户端?

背景 从2年前开始(使用Batman.js和node.js )我开始尝试在服务器和客户端上执行相同的DOM代码。 这是希望有SPA(单页面应用程序),可以使用pushState呈现,并在页面已经呈现为search引擎优化和卓越的用户体验路线访问(没有页面“闪光灯”与页面后的SPA渲染元素相关联负荷)。 这通常涉及将模块封装在if语句中,该语句检查模块是在window中执行还是被require.js使用,或者作为node.js等中的模块。 客户端+服务器SPA的当前实现 Rendr和Ezel都试图帮助客户端+服务器代码共享和DOM渲染function到骨干SPA。 Ezel在Backbone模型/集合中具有魔力,但是在客户端使用Backbone.View + Jade时 ,视图在服务器上使用Express + Jade呈现。 这意味着在扩展的Backbone.View中使用像Rivets这样的东西不会导致HTML打到由Rivets预渲染的客户端。 我希望构build一些最佳实践和技巧,使我自己的DOM服务器端保持简单(在一个位置编辑视图代码)和灵活(能够添加Ezel目前不支持的其他DOM操作模块)。 期望的结果 我想使用类似Rivets的东西来注入模型数据到视图中,然后通过一个HTTP请求为一个完整的页面加载path,并且通过一个HTTP请求来响应变化pushState在客户端上。 什么是节点的环境要求,我可以使用Rivets修改服务器上的HTML之前,它的服务和保持绑定在客户端上? 如何最好地将jQuery , Backbone , Rivets等引入到node.js中 ,让它们在HTML模板的DOM上运行,然后提供预渲染的结果(同时在客户端上保持正常的JS行为)? 相关模块 Sharify和Browserify都是可以帮助共享代码的工具。 Rivets , Backbone & jQuery都有与node.js兼容的发行版。 目前的工作 我已经开始通过Github上的分支向Ezel添加function。