时间:2021-07-01 10:21:17 帮助过:43人阅读
现有两种选择:
1. 在插入数据库前解析
2. 输出时解析
哪种更好些
目前我使用的是 https://github.com/erusev/parsedown 来解析Markdown
现有两种选择:
1. 在插入数据库前解析
2. 输出时解析
哪种更好些
输出时解析, 顺便如果有伪静态的话, 可以生成真正的静态文件, 这样下次就去请求生成的html了, 不再读数据库和走解析的流程, 更新数据的时候只需要删除原来生成的静态文件, 再次触发访问 就可以重新生成.
如果没有伪静态可以采取使用cache(最简单的文件形式的)
的方式,访问时先检测cache
目录中是否有对应的已经生成好的html文件,如果有就直接输出,当在后台更新数据时,删除cache
目录中相应的文件,或者直接清空cache
目录,下次访问时就会重新生成.
使用前端js
对Markdown
的内容进行解析,需要浏览器去加载相应的js
,由js
去完成转换,中间需要相应的时间,且页面多加载需要解析Markdown
的js文件(多了一个HTTP
请求), 不如后端解析后生成相应的html
文件,下次直接使用,来得实在.
且不用考虑浏览器是否支持js :)
当然是输出的时候解析(可以缓存下)
你入库之前解析的话,如果要编辑了怎么办?
再反过了?
综合考虑 当然是两份啦。md一份,解析一份。展示的时候取解析好的那一份。
当然输出时解析也行。但是计算机资源瓶颈一般在计算能力上。何必在展示的时候浪费呢。
输出的时候解析,用marked.js
即可
你也可以考虑前端解析。
存储解析后数据的话,如另外一个答案所说无法对原文本进行编辑。
存两份的话多占了空间还得同步。
而前端解析的话这些问题都不存在了,反正前端在编辑的时候也是要看预览版的,不如把工作都放在前端,后端只存原本。