即时渲染标记或存储HTML?

时间:2009-01-24 13:00:38

标签: html wiki markdown

在处理用户输入的标记时,对您有用的任何建议,例如:维基或降价。我有CPU和CPU数据库空间成本,所以我不确定要走哪条路。

  1. 在数据库中存储标记&渲染到 服务器上的每个网页浏览的HTML。 (减少数据库空间但CPU使用率更高)

  2. 在数据库中存储标记&渲染到 使用javascript在客户端上的HTML。 (可能更难实施)

  3. 只存储渲染的html 数据库&如果转换回标记 需要编辑。 (同样,实施起来可能很棘手)。

  4. 同时存储html&标记在 数据库。 (数据库空间加倍)。

  5. 其他。

  6. (我正在使用MFC和Linqtosql)。

4 个答案:

答案 0 :(得分:7)

我将它作为Wiki标记存储在数据库中,然后将转换的HTML输出保存在内存中的Web服务器的缓存中。无论你使用哪种网络技术,所有人都应该支持这一点 - 一个基本的元组(散列表),键入url,id或类似的东西。

答案 1 :(得分:1)

我会存储标记并动态呈现html服务器端。您可以使用服务器端缓存来减少您执行的实际计算量,并且可以保留具有合理语义的表示,并且可以根据需要呈现为text / html / pdf。

答案 2 :(得分:1)

最简单的方法是使用render的时间戳存储标记并在缓存中(可能在磁盘上或在memcached onjects中)呈现HTML。这样,您可以检查是否需要再次渲染,因为标记已更改或仅提供缓存的HTML。这就是大多数Ruby on Rails应用程序/ CMS的工作方式。

答案 3 :(得分:1)

我将它作为RST标记存储在数据库中,并根据需要转换为HTML。由于您可能正在使用前端(例如JSP,PHP,Django或其他呈现模板语言的东西),因此对RST的额外处理不会带来太多开销。

在决定实现复杂的缓存机制之前,实际测量将标记呈现为HTML的实际开销。

“(更少的数据库空间,但更多的CPU使用率)”不是一个测量的事实,这是一个可能结果不是真的假设。