我想分页我的网络应用程序页面。但通常在第一页上获得前10行,在第二页上获得10-20对我来说不是一个明智的决定,因为我的数据只是文本而且变化很大。一行可以只有10个字节长的白色另一个100kb长。所以我想按照它们的大小对我的应用程序页面进行分页。例如,当一个页面达到300kb时,我希望HAML注意到它并刷新网站。
问题是,是否有一个变量或函数可以在生成页面时检查生成的页面大小?
答案 0 :(得分:1)
当您从数据库中提取数据时,只需保持您输出的数据量的运行计数:
@some_collection.each_with_object(0) do |item, count|
count += item.some_text_field.length + item.some_other_text_field.length
break if count > 300
# Proceed as usual
end
请注意,上面计算的是字符数,而不是字节数。如果您想计算后者,可以在每个字符串上调用bytesize
,而不是length
。