我一直在考虑这个问题,并且不太确定最好的方法。
在rails应用中,我有books
,其中包含许多chapters
sections
。章节基本上只是部分的容器,但可能包含文本字符串本身。这些部分包含了大部分书籍文本。
我打算构建一个可在移动浏览器中运行的HTML 5电子书阅读器,我不希望用户必须向下滚动 - 我希望文本在页面末尾打破。
我假设使用split
可能是要走的路,但我不确定是否有办法定期休息?这里的javascript选项会更好吗?
我看过这个:Dividing text article to smaller parts with paging in Ruby on Rails但是不能在文本中插入手动断点,其中一些是90,000多个单词。
任何想法都会受到赞赏。
答案 0 :(得分:0)
我认为这里的主要问题是页面长度将取决于设备(可能还有文本大小,如果这是应用程序的功能)。您应该一次发送一个肯定至少要说5页长的大块,然后让javascript进行分页。 Rails无法访问,也不应该访问显示器的大小。
文本需要的数据非常少,您不必担心传输超出需要的内容或保留太多内存。
答案 1 :(得分:0)
您可以使用空行(“\ n”或“
”)作为分隔符。
答案 2 :(得分:0)
我会发送足够的页面内容以轻松填充页面等,然后在客户端幻灯片上使用javascript从页面中删除句子,直到滚动条消失。
Resize.js与我刚才写的类似。我想放大/缩小屏幕上使用的字体大小,直到屏幕刚满(对于仪表板显示器)。你的相似,但不是改变字体大小,而是修剪句子。
如果您看不清楚如何调整此代码,请告诉我。
注意:我还会在javascript中记录它最终显示的文本量,并在“下一页”请求中将其传递给服务器,以便服务器知道从哪里开始下一页。