我想你的问题可能会有一些困惑,关于DOM的工作方式。
虽然可以在node.js服务器上使用类似jsDom的库呈现具有DOM的应用,但是当向客户端提供相同的页面时,它具有完全不同的DOM实例,他们之间没有任何沟通方式。因此,您的应用程序对服务器上的DOM进行的任何更改都无法轻松传播到客户端上的DOM。
如果您的组件似乎在浏览器中运行缓慢,那么您更有可能从组件上获得良好的结果,使其更有效,而不是通过尝试将DOM操作卸载到服务器。
如果您查看两种不同的情况并将其分解为浏览器的实际功能,那么您会看到为什么这是一个糟糕的主意。
方案(1) - 渲染的Dom在服务器上改变
- 步骤1 - 客户端负载初始html页面从服务器(慢)
- 步骤2 - 用户与网页上的客户端进行交互(快)
- 步骤3 - 客户端发送的用户交互回服务器(vslow)
- 步骤4 - 服务器加载的Dom(慢)
- 步骤5 - Server运行的Dom改变(快)
- 步骤6 - 服务器发送重新呈现的HTML回客户机(慢)
- 步骤7 - 客户端呈现从服务器新的HTML(慢)
方案(2) - 渲染的Dom上客户端更改
- 第1步 - 从服务器客户端负载初始HTML页面(慢)
- 步骤2 - 用户与客户端(快)
- 步骤3页相互作用 - 客户端运行的Dom改变(快)
- 第4步 - 客户端渲染改变DOM(慢)
你会好得多只是你的组件上的工作,使之快于尝试卸载的DOM渲染到服务器。 Here's a good blog post on how to speed up jquery code。
如果您确实想要继续处理您在问题中提出的工作流程,我建议您查看jsDom库,但我真的不会推荐它。
这些是目前我正在尝试解决这个问题的事情。 nodejs-express&cheerio – 2013-03-04 12:25:39