我刚刚在一家 webdev 商店实习,我的第一份工作是解决我们的一个客户遇到的问题。长话短说,前雇员编写的一些代码存在问题,并且由于某种未知原因,客户网站上的加载时间变慢了。我的老板告诉我在代码中插入一个记录器,这样我就可以记录给定方法所花费的时间,并找出哪个方法“占用”了时间。我必须将给定方法所用时间的日志打印到服务器上的日志文件中。例如我想做这样的事情:
function search(x,acc)
{
var startTime = new Date().getTime();
//
//
//method code
//
//
var timeTaken = new Date().getTime() - startTime;
//the question is now how do I print that to some kind of
//server side log file i.e. "/etc/etc/logFile.log"
}
我对此有点困惑,因为显然 Javascript 是在客户端解释的,我希望这个文件存在于服务器端,我不知道从哪里开始。作为参考,这些页面是 .php 文件,其中 js 嵌入在 HTML 中。
编辑:在一些答案的帮助下,我在这里尝试了一些东西。让我们看看这个解决方案有多好/多坏。
//js function:
function search(x,acc)
{
var startTime = new Date().getTime();
//do some stuff
var middleOfFunction = new Date().getTime() - startTime;
// do some more stuff
var endOfFunction = new Date().getTime() - middleOfFunction;
//find out which chunk of code took longer, the beginning or the end
var max = Math.max(endOfFunction , middleOfFunction);
<?php
$message = 'The longest part of the function took :' . $max . ' seconds.'
file_put_contents($file, $message , FILE_APPEND | LOCK_EX);
?>
实际代码比这要复杂一些,我有一个更具描述性的消息,显示代码的哪一部分花费了更长的时间,但这是基本思想。这是否有意义,或者在任何 JS 运行客户端之前,php 会在服务器端运行吗?我对这种事情感到困惑。感谢大家的帮助,这对我来说意义重大。我试图在第二天的工作中表现出来,因为我在家工作了很多,所以我没有我的老板在身边问他问题。
再次感谢,打破。