我想你的問題可能會有一些困惑,關於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