JS和PHP的加载时间不一致

rat*_*oss 6 javascript php google-chrome-devtools

我有一个PHP脚本由JS通过JQuery加载$.ajax.我使用以下方法测量了PHP脚本的执行时间:

$start = microtime(); // top most part of code
// all other processes that includes AES decryption
$end = microtime(); // bottom part of code
file_put_contents('LOG.TXT','TIME IT TOOK: '.($end-$start)."\n",FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)

它的测量时间不到1秒.没有prepend/append PHP脚本.

在JS $.ajax代码中,我通过以下方式测量了执行时间:

success: function(response) {
    console.log(date('g:i:s a') + ' time received\n');
    // all other processes including AES decryption
    console.log(date('g:i:s a') + ' time processed\n');
}
Run Code Online (Sandbox Code Playgroud)

收到的时间和处理的时间相同.

但是,当我查看Chrome开发者工具时,它声称PHP脚本加载了大约8秒钟.

我如何测量这些东西可能有什么问题?我确定PHP的加载速度很快,但是Chrome报告说它花了8秒多的时间?

我正在使用localhost,我的网络服务器很快,这是我遇到这个问题的唯一一次.所有其他AJAX调用都很快.

Mr.*_*ama 2

在 PHP 部分中,确保您使用的是microtime(true)浮点数不是字符串。对字符串使用减法可能会产生不正确的结果。


示例: http: //ideone.com/FWkjF2

<?php

// Wrong
$start = microtime();
sleep(3);
$stop  = microtime();
echo ($stop - $start) . PHP_EOL;  // Prints 8.000000000008E-5

// Correct
$start = microtime(true);
sleep(3);
$stop  = microtime(true);
echo ($stop - $start) . PHP_EOL;  // Prints 3.0000791549683

?>
Run Code Online (Sandbox Code Playgroud)