我为一个朋友创建了一个网站。因为他希望音乐播放器可以在页面加载时继续播放音乐,所以我决定通过ajax(利用jQuery)将内容加载到页面中。它运行良好,在没有JavaScript的情况下可以很好地回退,并且前进/后退按钮也很好用,但是服务器上非常慢。
一些要点:
1. 初始页面加载相当快。Chrome开发者控制台告诉我,“index.php”大约需要2.5秒钟。我已经设置了查询字符串参数来指示加载哪个页面,这个时间对于它们所有都是准确的。对于主页,加载了8.4KB的数据。
2. 当我通过ajax请求加载内容时,无论下载的数据大小如何,都需要大约20秒钟。以这种方式加载的最小数据量约为500字节。显然存在不匹配。
因此,Chrome告诉我,花费的绝大部分时间是“等待”,这意味着服务器正在处理请求。那么,只能是我的代码需要很长时间,或者服务器出了问题。我认为这不是我的代码问题,因为它非常简单:
这段代码位于
我使用jQuery的
我目前认为这是服务器的问题,但我不明白为什么通过JavaScript发出的请求比通过传统方式通过浏览器发出的请求要慢得多。另外,一些内容页面确实连接到MySQL数据库,但有些则不是。似乎无论页面需要处理什么或者包含多少数据,都需要大约20秒的时间。
我很困惑......有没有人知道有什么可能解释这个问题?此外,如果这不是适当的提问场所,我很抱歉,因为其他地方似乎也不是特别适合这个问题。
一些要点:
1. 初始页面加载相当快。Chrome开发者控制台告诉我,“index.php”大约需要2.5秒钟。我已经设置了查询字符串参数来指示加载哪个页面,这个时间对于它们所有都是准确的。对于主页,加载了8.4KB的数据。
2. 当我通过ajax请求加载内容时,无论下载的数据大小如何,都需要大约20秒钟。以这种方式加载的最小数据量约为500字节。显然存在不匹配。
因此,Chrome告诉我,花费的绝大部分时间是“等待”,这意味着服务器正在处理请求。那么,只能是我的代码需要很长时间,或者服务器出了问题。我认为这不是我的代码问题,因为它非常简单:
$file = "";
if (isset($_GET['page'])) {
$file = $_GET['page'];
} else if (isset($_POST['page'])) {
$file = $_POST['page'];
} else {
$file = "home";
}
$file = 'content/' . $file . '.php';
if (file_exists($file)) {
include_once($file);
} else {
include_once('content/404.php');
}
这段代码位于
content_loader.php
文件中,我的JavaScript(在这种情况下)与“page”参数一起发送GET请求。 HTML标记返回并放置在页面的DIV中。我使用jQuery的
.get()
简写函数,因此我不认为这会出现问题,而且我相信这不是JavaScript的问题,因为延迟是等待来自服务器的数据。即使数据非常小,它也需要大约20秒的时间。我目前认为这是服务器的问题,但我不明白为什么通过JavaScript发出的请求比通过传统方式通过浏览器发出的请求要慢得多。另外,一些内容页面确实连接到MySQL数据库,但有些则不是。似乎无论页面需要处理什么或者包含多少数据,都需要大约20秒的时间。
我很困惑......有没有人知道有什么可能解释这个问题?此外,如果这不是适当的提问场所,我很抱歉,因为其他地方似乎也不是特别适合这个问题。