优化动态页面加载时间的最佳实践(JSON生成的HTML)

时间:2010-11-09 02:48:46

标签: ruby-on-rails performance

我有一个Rails应用程序,我在其中加载基本HTML布局,并使用JSON的div行填充主要内容。这分为两步:

  1. 渲染HTML
  2. Ajax调用以获取JSON
  3. 这样做的好处是能够缓存不会发生太大变化的HTML布局,但它似乎有更多的缺点:

    1. 2个HTTP请求
    2. HTML并不复杂,生成的html是完成所有工作的地方,所以我可能不会按时节省那么多。
    3. 在我的特定情况下,每个请求都要求我们检查当前用户,他们的角色以及与该用户相关的一些事情,因此这些2个调用都有所涉及。
    4. 当然,memcached可能会解决很多问题,我想知道这里是否有一些最佳实践。我想我能做到这一点:

      • script块中与HTML一起呈现JSON内联的第一页。这将切断需要用户身份验证的那两个服务器调用。并且,假设80%的时间你不需要进行第二次ajax调用(在这种情况下是分页/排序),这似乎是一个相当不错的解决方案。

      您对如何处理此事有何看法?

2 个答案:

答案 0 :(得分:0)

做这样的事情有利有弊。一般来说,我认为这只是一个好主意,如果你通过ajax调用延迟任何内容会延迟页面加载足以使最终用户厌倦页面上的大多数用例。

这方面的一个很好的例子是浏览github上的存储库。所有你想要的90%的时间都是导航文件,所以他们使用ajax加载来填充页面加载后每个文件的提交消息。

听起来你正在尝试这样做以加速或为你的用户做一些奇特的事情,但我认为你应该考虑一下,哪个部分很慢,以及页面加载的速度(也许是关于什么信息)那个页面)你的用户期待。正如您所说,使用memcached或片段缓存可能会为您提供所需的改进。

答案 1 :(得分:0)

您使用的是某种监控工具吗?我在Heroku上使用免费版的New Relic RPM。它为各个控制器操作提供了大量有关请求时间的数据。这样的数据可以帮助您集中优化过程。