0

我想对我的 Web 应用程序页面进行分页。但是通常在第一页获取前 10 行,在第二页获取 10-20 对我来说不是一个明智的决定,因为我的数据只是文本并且变化很大。一行只能是 10 字节长,另一行是 100kb 长。所以我想按它们的大小对我的应用程序页面进行分页。例如,当页面达到 300kb 时,我希望 HAML 注意到它并刷新网站。

问题是,是否有一个变量或函数可以在生成页面时检查生成的页面大小?

4

1 回答 1

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.

于 2012-06-18T23:38:27.117 回答