任何人都可以帮助我理解为什么运行这两个查询所花费的时间似乎有如此巨大的差异。我正在使用水豚遍历页面的报表部分上的所有锚定标记,然后将每个值放入数组中,以便我可以检查值。查询执行说明差别很大
@links = page.all('table.report > tbody > tr > .col_7 > a')
@links.map(&:text) # This takes approx 20 seconds to go through 239 results
@links.map { |l| l['title'] } # This takes about 3 seconds
为什么会有这么大的差异?我期待了解地图功能的每个变体之间的主要区别。
感谢
你有没有尝试与'@links.map {| l | l.text}'?我认为它更多的是关于不同类型的DOM扫描,而不是关于不同的“地图功能变化”。 – PSkocik
我的意思是,标题只是一个标签属性 - 它应该已经存储在链接对象实例中。 '#text'可能是一种递归扫描所有子节点并提取其文本内容的方法。 – PSkocik
谢谢,现在我明白了一点吧 – Richlewis