Javascript 如何获得网页加载时间
我需要得到一个网页的加载时间,但有一个陷阱。我尝试了一些不错的浏览器插件,比如用于Firefox的AppTelemetry。但只要单击一个按钮,我的页面就会重定向到另一个页面上的脚本,运行脚本,然后重定向回原始页面并加载页面。我想给整个过程从头到尾计时Javascript 如何获得网页加载时间,javascript,php,webpage,page-load-time,Javascript,Php,Webpage,Page Load Time,我需要得到一个网页的加载时间,但有一个陷阱。我尝试了一些不错的浏览器插件,比如用于Firefox的AppTelemetry。但只要单击一个按钮,我的页面就会重定向到另一个页面上的脚本,运行脚本,然后重定向回原始页面并加载页面。我想给整个过程从头到尾计时 我的理解是,客户端无法写入主机系统上的日志文件。使用JS显示带有系统时间的警报不起作用,因为它会暂停,直到您单击“确定”。使用PHP脚本将时间记录到服务器日志文件将有助于调整重定向脚本的执行时间,但这将排除页面加载时间。是否有其他方法来测量总加载
我的理解是,客户端无法写入主机系统上的日志文件。使用JS显示带有系统时间的警报不起作用,因为它会暂停,直到您单击“确定”。使用PHP脚本将时间记录到服务器日志文件将有助于调整重定向脚本的执行时间,但这将排除页面加载时间。是否有其他方法来测量总加载时间,包括重定向和脚本?为什么不在单击时设置一个带有时间戳的cookie,并在过程结束后读取它?有点脏,但如果只是为了开发目的,你可以这样做。为什么不在单击时设置一个带有时间戳的cookie,并在过程结束后读取?有点脏,但如果只是为了开发目的,你可以这样做。一个非常简单和基本的解决方案可以是:
window.onload=函数(e){
var sample=localStorage.getItem(“加载时间”);
if(sample==null){
setItem(“loadTime”,new Date().getTime());
window.location.reload(true);
}否则{
var loadingTime=new Date().getTime()-sample;
警报('加载的页面:'+loadingTime+'毫秒')
localStorage.removietem(“加载时间”)
}
}
另一种可能是避免重新加载页面,只需在页面开始时直接用HTML设置starttime的值,如:
var start=Date.now();
window.onload=函数(e){
var loadingTime=new Date().getTime()-start;
警报('加载的页面:'+loadingTime+'毫秒')
}
一个非常简单的基本解决方案可以是:
window.onload=函数(e){
var sample=localStorage.getItem(“加载时间”);
if(sample==null){
setItem(“loadTime”,new Date().getTime());
window.location.reload(true);
}否则{
var loadingTime=new Date().getTime()-sample;
警报('加载的页面:'+loadingTime+'毫秒')
localStorage.removietem(“加载时间”)
}
}
另一种可能是避免重新加载页面,只需在页面开始时直接用HTML设置starttime的值,如:
var start=Date.now();
window.onload=函数(e){
var loadingTime=new Date().getTime()-start;
警报('加载的页面:'+loadingTime+'毫秒')
}
您可以使用本地存储而不是cookie
看
例如,您可以使用本地存储而不是cookies 看
举个例子这只是为了发展,这可能行得通。这只是为了发展,这可能行得通。@close选民慢下来。这并不太广泛,因为它针对的是一个非常具体的任务,这也不是离题的,因为解决方案可能会以编程方式执行,而且它不要求第三方库或类似的东西。这应该得到一个答案。我只是把它作为一种选择扔掉。这可能有些过分,但也可能适合您在环境中所做的任何其他事情。谢谢你,菲利克斯。我无法理解那些反对票。“这是一个非常简单但有效的问题。”接近选民的人慢下来。这并不太广泛,因为它针对的是一个非常具体的任务,这也不是离题的,因为解决方案可能会以编程方式执行,而且它不要求第三方库或类似的东西。这应该得到一个答案。我只是把它作为一种选择扔掉。这可能有些过分,但也可能适合您在环境中所做的任何其他事情。谢谢你,菲利克斯。我无法理解那些反对票。这是一个非常简单但有效的问题。非常感谢gaemaf!我使用了您的第一个解决方案的修改版本。我删除了location.reload语句,并添加了一个count变量,因此它只在页面重新加载两次后显示警报。对于我的测试和开发目的来说,它工作得很好。当然,某种形式的记录器会更好,但这是可行的!非常感谢gaemaf!我使用了您的第一个解决方案的修改版本。我删除了location.reload语句,并添加了一个count变量,因此它只在页面重新加载两次后显示警报。对于我的测试和开发目的来说,它工作得很好。当然,某种形式的记录器会更好,但这是可行的!