我正在创建contenteditable
个DIV块,其中包含围绕单个单词或短语的文本块和SPAN的DIV。 SPAN作为单独的实体保存到数据库中。我没有看到需要细分和创建单独的表和列以避免使用HTML代码(我不知道这是否是好的做法)。
既然我的想法猖獗,我想知道实际上将每个包装器,子div和span作为单独的实体存储在数据库中以及相关的属性是否会更好。设置可能需要一些时间,但我想知道一种方法与另一种方法的优缺点。
例如,存储在不同表格和行中的不同数据位最终是否较慢,从长远来看更难以管理,并且比在一个字段中全部更容易被“损坏”?
HTML的示例块:
<div class="tab" id="tab1" contenteditable=true>
<div>
ly dummy text <span id="1">of</span> the pri
</div>
<div>
ly dummy <span id="2">text</span> of the pri
</div>
<div>
ly <span id="3">dummy</span> text of the pri
</div>
<div>
ly dummy <span id="4">text</span> of the pri
</div>
<div>
<span id="5">ly</span> dummy text of the <span id="6">pri</span>
</div>
</div>
以前,我会加载整个HTML块并允许客户端函数对跨度做一些事情。现在,我想知道不仅存储单独的tabs
而且存储该选项卡的每个子div以及关系表中这些div中的众多可能跨度的缺点是什么。那么,Context&gt;标签&gt; Div> Span,以及可能导致给定表中的数千行。不幸的是,我对编程比较陌生,所以我不确定其中的一些原则。感谢您的时间和耐心。
答案 0 :(得分:1)
将HTML的整个部分存储到数据库中通常是不好的做法;除非您特别想要为不同用户提供不同的视图,否则您不应该将任何标记存储在数据库中。即使这样,我也会建议改为使用多个不同的HTML页面。
相反,您应该做的是将您的HTML视为存储在数据库中的数据的表示,并将这两者视为完全独立。代表你是如何view
&#39;数据,应简单地表示您的数据呈现。
假设您的用户可以修改您的内容块,以便其他人能够看到更改,您可能希望将用户输入的文字存储到数据库,虽然您当然不想在数据库中存储任何支持HTML格式。
如果要将此信息显示给用户,只需将从数据库中检索到的信息量注入到视图中。
例如(在PHP中):
<html>
<div class="container">
<span id="output"><?php echo $content; ?></span>
</div>
</html>
由于从视图中提取和隔离数据,您可以轻松修改 以进行重新调整用途。如果要显示新数据,只需修改数据($content
)以便以相同方式显示它。同样,您可以在多个不同的地方显示相同的数据;在上面,$content
可以在任何地方输出。
这不仅显着提高了可管理性,还减少了数据库中存储的数据量,从而减少了呼叫次数(从而加快了负载)。
在这方面有很多不同的技术,但最常见的是 Model-View-Controller 方法。
希望这有帮助!