0

我有一个包含大约 700 行的大表的视图。在 Chrome、Firefox 和 Safari 中(在我的本地机器上进行开发时),页面需要 2-3 秒才能加载。最近我通过 Rubber 部署了该应用程序,首先部署到我机器上的 Vagrant VM,然后部署到 EC2。在这两种情况下,部署时,页面在 Safari 上加载大约需要 60 秒,但在 Chrome 和 Firefox 上运行正常。

我在每一行都有一个画布元素,我有一个 JavaScript 函数 DrawCircle,它用叠加了数字的彩色点装饰表格每一行上的画布。这是相当昂贵的,但根据我在 Safari 开发人员工具中看到的,通常情况下,在页面下载后,大约有 40-50 个与 DrawCircle 相关的事件,但在病态的情况下有数千个。所以我猜测正在发生的是,通常情况下,只有在视口中可以看到的元素(大约十几行)才会在页面显示之前呈现,但在这种情况下它会呈现所有 700 行。

rails 3.2 环境本身似乎并没有导致这种情况,因为我尝试将我的 development.rb 环境文件复制到 production.rb 并进行部署,并且发生了同样的问题。我使用unicorn和nginx部署,但我也在开发中使用unicorn,所以除了URL之外应该没有什么区别。

我会分享一些代码,但我想不出什么是相关的。请问。

更新:当我试图追踪这一点时,我的开发环境突然开始出现与生产相同的问题。这样就解决了一个谜团(生产和开发之间的区别)并增加了另一个谜团(为什么突然改变了?)。无论如何,在这一点上,我将认为这只是 Safari 的一个怪癖,它使我的坏页面呈现得很糟糕,然后回去改进页面。@epascarello 的提示很有帮助。

4

0 回答 0