javascript - 如何获取网页加载时间

标签 javascript php html page-load-time

我需要获取网页的加载时间,但有一个问题。我尝试过一些不错的小浏览器插件,例如 Firefox 的 AppTelemetry。但是,单击按钮后,我的页面会重定向到另一个页面上的脚本,运行该脚本,然后重定向回原始页面并加载该页面。我想对整个过程从开始到结束进行计时。

我的理解是客户端无法写入主机系统上的日志文件。使用 JS 显示带有系统时间的警报不起作用,因为它会暂停,直到您单击“确定”。使用 PHP 脚本将时间记录到服务器日志文件可以用于计时重定向脚本的执行,但这会排除页面加载时间。还有其他方法可以测量总加载时间(包括重定向和脚本)吗?

最佳答案

一个非常简单和基本的解决方案可能是:

  1. 在窗口加载时检查本地存储中的 loadTime 变量(无 cookie)

  2. 如果未设置当前时间并重新加载页面

  3. 如果完成加载,则计算加载时间并从本地存储中删除变量。

这不是最好的,但可以给你一个原始的想法。

最好的方法是查看控制台或编写/使用插件。

window.onload=function(e) {
  var sample = localStorage.getItem("loadTime");
  if (sample == null) {
    localStorage.setItem("loadTime", new Date().getTime());
    window.location.reload(true);
  } else {
    var loadingTime = new Date().getTime() - sample;
    alert('Page loaded in: ' + loadingTime + 'milliseconds')
    localStorage.removeItem("loadTime")
  }
}

另一种可能性是避免重新加载页面,只需在页面开始时直接在 HTML 中设置开始时间的值,例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <script type="text/javascript">
        var start = Date.now();
    </script>
    <meta charset="UTF-8">
    <title></title>
    <style>
    </style>
    <script>
        window.onload=function(e) {
            var loadingTime = new Date().getTime() - start;
            alert('Page loaded in: ' + loadingTime + 'milliseconds')
        }
    </script>
</head>
<body>

</body>
</html>

关于javascript - 如何获取网页加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35468785/

相关文章:

php - 使用 Php 从 Mysql 获取用户评论

python - python中仅从html文档中获取主要文本

javascript - 如何清除每次使用文件 uploader 上传文件时的标签消息

php - 我的 php 端表单不接受 CSS 样式

php - 如何为企业名称创建mysql查询?

html - 在 CSS/HTML 中将图像网格居中的方法?

javascript - 如何使用 Semantic-UI 中的占位符元素?

javascript - 确定绝对或全局 z-index?

javascript - 如何在 "AND"关系中组合 deferreds/promise,但不将单个拒绝计为整体拒绝?

javascript - 如何在每次执行替换代码时获取随机数?