2

在处理用户输入的标记(例如 wiki 或 markdown)时对您有用的任何建议。我有 CPU 和数据库空间成本,所以我不确定该走哪条路。

  1. 将标记存储在数据库中并为每个页面浏览呈现到服务器上的 html。(更少的数据库空间,但更多的 CPU 使用率)

  2. 将标记存储在数据库中并使用 javascript 在客户端上呈现为 html。(可能更难实现)

  3. 仅将呈现的 html 存储在数据库中并在需要编辑时转换回标记。(同样,实施起来可能很棘手)。

  4. 将 html 和标记都存储在数据库中。(数据库空间翻倍)。

  5. 别的东西。

(我正在使用 MFC 和 Linqtosql)。

4

4 回答 4

7

我会将它作为 Wiki 标记存储在数据库中,然后将转换后的 HTML 输出保存在内存中的网络服务器缓存中。无论您使用哪种网络技术,都应该支持这一点 - 以 url、id 或类似名称为键的基本元组(哈希表)。

于 2009-01-24T13:05:30.497 回答
1

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

于 2009-01-24T13:07:34.940 回答
1

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

于 2009-01-24T13:07:50.260 回答
1

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

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

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

于 2009-01-24T13:10:36.057 回答