资讯大佬个问题,
第一: 如果直接将html代码存入到数据库会有什么弊端,
第二: 将输入的文本进行类似本站编辑器的格式处理,再存到数据库, 和将输入的文本在后端进行转化(比如转成16进制字符等等)这种操作, 各有什么优缺点
资讯大佬个问题,
第一: 如果直接将html代码存入到数据库会有什么弊端,
第二: 将输入的文本进行类似本站编辑器的格式处理,再存到数据库, 和将输入的文本在后端进行转化(比如转成16进制字符等等)这种操作, 各有什么优缺点
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
为什么需要进行转化?基本都是直接存储,但是弊端是很明显的,富文本而言会有样式问题,会在不同尺寸的设备上显示很怪异,因为很多富文本编辑器都还是按照 px 作为元素单位进行存储的,展示的时候也会受到这些的影响,还不容易编辑,切换编辑工具就会存在问题,偶尔还存在格式错误,样式冲突等问题,当然,富文本因为直接是 HTML ,具有编程能力的人可以自定义出好看的样式(因为富文本编辑出来的大多都是内联样式,所以大部分时候会覆盖掉外部的 css 样式,这也是不太号的)。
像本站使用的就是 markdown 编辑器,在渲染时在进行转码为 HTML,编辑时结构也很清晰,当然,这是 markdown 的功劳。
markdown 同时也是支持 HTML 标签的,因为它本来就会被渲染成 HTML 然后展示,只是为了安全,一些渲染时会过滤掉不安全的标签。
markdown 另外的优势就是更加节省空间,而且就算不渲染可读性也比较高(虽然没有富文本那样直观)。
首先要明确一点的是,如果从安全角度出发,存储时,不用太过担心,但是要担心渲染时,因为你需要确保没有恶意的标签,造成安全漏洞比如(XSS)。
直接存 HTML ,会占用较大空间,并且样式单一,因为在编辑时就确定了,后续想改就必须要修改内容。
而 markdown 则可以自定义样式,而不需要去修改原内容,并且相比于 HTML,更加节约空间,但是需要一定的学习门槛。