4 个回答

方法一
断点调试法,下断点从入口一步步追踪下去,比如入口第一行秒回 则 下面行,二分查找速度 快些,主观判断哪里慢10秒很容易查出来,这种前提是要下要几次断点
方法二
用xhprof xdebug 等侵入式分析工具

如果可以用 Chrome devtools 的话,可以用 Performance 标签看一下整个载入过程各个动作的耗时。

先看看是哪段代码导致的,再做针对性的 Debug。

一开始就上调试代码等于大海捞针。

图片描述

新手上路,请多包涵

通常认为白屏时间就是从浏览器发出请求直到浏览器开始渲染body标签(页面出现元素)所花费的时间。
我最常用的方法是使用performance.timing对象,计算花费的时间。具体使用方法,只要阅览文档就能够掌握了。

    var t = performance.timing;
    // 建立连接花费的时间
    var conntime = t.connectEnd - t.connectStart
    // 发出请求到服务器响应花费的时间
    var reqsresstime = t.responseStart - t.requestStart
    // 接收全部响应所花费的时间
    var ressresetime = t.responseEnd - t.responseStart
    // 从建立连接到页面加载
    var pageloadtime = t.loadEventStart - t.connectStart
    // ...

clipboard.png

稍作分析,就能知道到底是服务器响应耗时多,还是浏览器加载耗时多。
除此之外,也可以使用浏览器提供的开发者工具进行抓包分析。

@利维坦少女 楼上正解,先看是哪一部分的耗时最大,然后再去打点调试最为有效

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题