小说阅读器看着挺简单,实际上并不简单,从小说的导入,章节切割,读取速度,到后面阅读时的页面设置,翻页流畅度,每一步都需要一些技术来实现,以达到完美的效果。
虽然现在的小说基本上都是一个txt文本文件而已,但是,这些文本的编码可能千差万别,虽然从网络上下载下来的小说txt文件,双击直接用记事本打开了,也能显示正常的内容,但是这只是说明记事本程序比较厉害,它自动识别了这个txt文件里的文本是什么编码(文本存储在txt文件里都是通过编码后存储进去的),光中文编码就有UTF8编码,GBK编码,GB2312编码等(具体可见程序员必备:彻底弄懂常见的7种中文字符编码)。
用不同的编码方式去解析小说内容,就有可能会出现读出来的是一串乱码,必须用这个txt文件用的编码格式去解析这个txt文件,但关键是怎么知道这个txt文件用了那种编码格式,这是一个很困难的问题,所以有些小说阅读器在读取某些txt文件时读出乱码,或者干脆弹出一个弹窗让用户自己选编码格式(用户:?什么是编码格式?)。
现在网络小说动辄几千张,上百万字,反映到txt文件上,就是十几MB的大小,无论是记事本,还是word,打开那叫一个卡,一般的小说阅读器都会在导入时间/打开时间上做优化。
小说之所以能极速打开,其原理就在于章节切割,从而打开的时候不用读取十几MB的文件,只需要读取相应章节那一段即可。
但是,其实章节切割也是有坑的,章节切割原理其实是通过识别章节名来切割每个章节,但小说来源五花八门,不同来源小说的章节名的格式可能有所不同,例如有的小说的章节名的格式类似于“第十章 天降奇缘”,而有的小说的章节名格式则是“10 天降奇缘”,甚至有的小说是多种章节名格式混用,这就导致了一般的小说阅读器很难能正确,完美地切割所有章节,体现在阅读上,就是缺章,或者把一章切成了多章。
关于阅读体验,可以做的很简单,能读就行,也可以做的很复杂,带来极致的阅读体验,潮汐阅读器就属于后一种,现在在电脑端,无论是web网页端,还是阅读器软件,大部分的阅读模式都是缺失的,网页端往往就是一个滚动页面,读完一章,然后最下面有去往下一章的按钮,而阅读器软件也很少有左右翻页的txt阅读器。
为什么会这样?其实这就是阅读体验的问题,而一个功能丰富的阅读页面,其实是很难构建的,比如说上下滚动的阅读模式,一般的网页端或者阅读器软件,每次只加载一章,然后滚动到最后会有“上一章”,“下一章”的按钮,每次看下一章还需要点一下。
而潮汐阅读器不仅实现了无限上下滚动模式,而且也实现了左右翻页模式,翻页流畅不卡顿,更重要的是,两种模式都是免费的。
附加坑:阅读模式的切换
一般同时有两种阅读模式的阅读器软件,两种阅读模式的相互切换可能是很困难的事情,例如从上下滚动模式切换为左右翻页模式或者从左右翻页模式切换为上下滚动模式,几乎没有阅读器能很丝滑的立即切换,一般的阅读器在模式切换后,往往会让你再次打开阅读器,切换的阅读模式将会在下次打开时生效。
为什么会这样呢?这其实是有技术难点的,同时这也是体验问题,虽然切换后的阅读模式会在下次打开软件才生效,也不是完全没法用不是?而且技术实现也容易了不少,这其实是一个取舍的问题。