繁体   English   中英

AngularJS HTTP调用需要两分钟,而Rails操作只需要20秒,我该如何调试呢?

[英]AngularJS HTTP call takes two minutes while the Rails action only takes 20 seconds, how can I debug this?

我有一个AngularJS应用程序,我的应用程序中有一个页面,只有一个,需要2分钟才能加载。 它正在加载一些数据,但数据本身只有700KB,我从开始直到渲染之前对整个rails操作进行基准测试,它只需要15-20秒。 但是,当我查看实际的网络呼叫时,或者在角度http post post之前放置一个计时器,然后在成功之前放置一个计时器,它们都显示呼叫花了将近2分钟。 我无法弄清楚渲染和角度成功之间会发生什么,这会造成这种极端时差。 有谁知道我怎么可以进一步调试这个或可能知道是什么原因造成的?

rails动作只进行了几次大数据库调用,都进行了优化,然后对数据进行了一些处理,然后渲染了数据(已经使用to_json进行了JSONified)。

Rails操作Completed 200 OK in 20458ms (Views: 913.8ms | ActiveRecord: 139.6ms)

编辑:如果我对我的数据设置限制几乎是即时的,所以它肯定与数据有关。 但是我不确定什么可能导致rails操作完成和http post成功开始之间的一分半钟断开。

Edit2:ajax调用需要相同的时间。 因此,必须存在数据如何在前端进行解析的问题,而不确定执行此操作的最佳方法。 因为渲染和获取它的页面之间存在明显的问题。

事实证明,这个问题在某种程度上是我老同事写的非常复杂的哈希。 我认为整个事情是非常不必要的,所以我删除了所有90行代码,他从头开始构建哈希,而不是3行。

我现在有两个activerecord查询与正确的包含,然后使用as_json在这些activerecord对象上写入一个呈现状态,并使用正确的include和only参数,现在唯一的东西在25秒内加载开发。 我只能想象它在制作/舞台上会更快。 我不知道为什么哈希像json一样难以渲染,但是在render语句中调用活动记录对象上的as_json完全解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM