为什么基于ajax的页面加载比完全加载慢?

时间:2014-08-05 17:15:02

标签: javascript jquery ajax

我使用jQuery和history.js(https://github.com/browserstate/history.js)使用ajax加载我们网站的大多数页面已经工作了几个月。从技术上讲,这一直很好,没有严重的问题。基本过程是:

  1. 将处理程序绑定到点击次数
  2. 点击,防止默认并执行History.pushState
  3. 然后在州改变:

    1. 滚动到顶部,显示加载动画
    2. 隐藏主要内容div,然后使用.empty()
    3. 删除它的内容
    4. 运行ajax请求($ .post到目标网址)
    5. 收到数据时,将其放入主内容div中,显示div,并隐藏加载动画
    6. 请注意,我特意将请求更改为帖子而不是get,因为我需要发送一个post标志告诉服务器这是一个ajax请求,因此它知道只返回必要的内容。

      但是,谷歌分析报告,对于启用了ajax浏览的用户,页面加载时间平均约为1秒(我正在进行50/50分割测试)。

      有一段时间我认为这只是不准确的报道,因为我已经读过谷歌的速度报告可能会被来自全球各地加载时间更长的一两个访问者搞砸了。

      今天我并排打开了两个浏览器窗口(chrome和chrome隐身)并点击了网站,确定使用ajax的窗口加载时间有点慢。它不一致,有时它更快,但从来没有太多。当速度较慢时,速度明显变慢。通常这发生在ajax请求看起来很慢时(加载动画在额外的一秒左右仍然可见)。同时,满载窗口的加载时间一致。

      我无法想象为什么会这样。 ajax请求应该总是更快。以前有人遇到这个并发现同样的事情吗?

0 个答案:

没有答案