【mysql】豆瓣读书的批注功能是如何实现的?

像这样可以选中任意文字进行批注,看了下前端的代码是把每个字都用span标签给包裹起来并且有数字排序(感觉应该是从数据库取出文章后再进行处理的),想知道后台数据库是怎么进行处理和存储的,有没有现有的框架或库可以借鉴?
如果是从数据库取出文章再对每个字进行处理和排序,那么删改原文之后原先的批注是不是会失效?

【mysql】豆瓣读书的批注功能是如何实现的?

回答

作为collamark的作者, 这个不麻烦。 你需要掌握range API就行了。https://developer.mozilla.org...

服务器存储被选中的node和startIndex, endIndex,剩下的就是dom的操作了。

至于原文修改的话,首先豆瓣阅读是正规书籍修改的情况很少。 如果真是出现的话可以在修改后台进行数据矫正, collamark的话如楼上所说会进行自动矫正,当数据库的偏移的出来的文本和数据库中的文本不一致的时候,就直接搜索全文找到正确的偏移(也不是100%正确了,比如页面同时有两个相同的出现位置的时候,就没办法了)

两个关键点,批注偏移位置和偏移量就可以快速定位批注位置和文本合一下就行了

以上是 【mysql】豆瓣读书的批注功能是如何实现的? 的全部内容, 来源链接: utcz.com/a/74745.html

回到顶部