我是 Sinatra 和网络编程的新手,所以使用的一些术语可能不太正确。反正...
我有一个应用程序将 .txt 逐行读取到数组中,然后当您加载 index.html.erb 时,它会随机显示其中一行。我将内容放在文本文件中,而不是直接放入数组中,这样如果我需要添加更多数据,则更容易更新,然后直接添加到数组中并重新部署应用程序。我担心的是它是否在每次加载页面时重新创建数组并重新读取文件。我不知道这种东西在服务器端是如何工作的,或者如何检查它。创建数组的代码如下:
before do
@ways ||= ['']
if @ways[1].nil?
File.open('ways.txt', 'r').each_line { |line| @ways << line }
end
end
然后我的路线:
get '/' do
@way = @ways.sample
erb :index
end
有没有办法确保这尽可能高效?还是应该完全以其他方式完成?根据 Chrome 开发工具,每页加载传输约 800b。