在PHP中使用microtime函数时,我似乎遇到了一个奇怪的问题。在我的index.php上,我有以下
$.ajax({
url:'loadtime.php',
datatype:"application/json",
type:'get',
data: "host=http://www.mywebsite.com",
success:function(data){
document.getElementById('loadtime_com').innerHTML = data;
},
error:function(){
// code for error
}
});
在loadtime.php上
$host = $_GET['host'];
$time = microtime( TRUE );
file_get_contents( $host );
$time = microtime( TRUE ) - $time;
echo $time;
当我转到我的index.php时,它显示的时间不到2.00秒(这是错误的)。然后我创建了另一个名为loadtime2.php的PHP文件,并将代码更改为
$host = "http://www.mywebsite.com";
$time = microtime( TRUE );
file_get_contents( $host );
$time = microtime( TRUE ) - $time;
echo $time;
然后转到mywebsite.com/loadtime2.php测试脚本,这给了我超过5.00秒的时间。我无法解决导致这种差异的原因,就像microtime让我有时间从index.php中检索loadtime.php而不是获取网站内容的时间。
答案 0 :(得分:0)
假设你的代码片段不是人为的例子,问题可能是这样的:
data: "host=http://www.mywebsite.com",
由于您正在使用GET,因此应在对查询字符串传递URL之前对URL进行编码。 PHP可能在2秒内收到一个404的乱码版本,而loadtime2.php
文件正在给你(大致)实际的加载时间。 (您可以通过转储URL或响应来确认这一点)
data: "host=" + encodeURIComponent(url),
P.S。在PHP中,单个刻度'
为best for URLs。