我目前正在用PHP开发一个类,该类发出cURL请求并以JSON形式返回答案,以便由我的页面上的jQuery处理。到目前为止-没问题。
(请注意,我加载该内容的唯一方法是使用自己的服务器-我正在使用我的私有API密钥查询网站的API)

问题是某些页面很慢(由于服务器),加上使用jQuery发送到我的服务器的请求使页面加载时间很长,这大约需要5秒(或更长时间),而用户根本没有反馈。

我想知道是否有$ .ajax的jQuery事件在请求发送到服务器时调用(意味着服务器也开始加载请求的页面),但是在对我页面的实际请求结束之前被调用。

我正在努力实现这一目标:

*user click* (0)
Sending request... (1)
Request sent. Loading page... (2)
Page loaded. (2)



事件0只是一个点击
事件1将是jQuery的$.ajax({ beforeSend: function(){} );
活动2是我想要的。就像onSend一样,但不幸的是它不存在
事件3是jQuery的$.ajax({ complete: function(){ } });


附带说明:我使用的是jQuery,但是如果需要,使用普通的JavaScript也没有问题。

最佳答案

也许这样的事情可以执行您想要的操作:

xmlhttp.onreadystatechange = function () {
  if (xmlhttp.readyState == 2) {
    alert("loading page");
  }
}


XMLHttpRequest具有以下状态:
0:请求未初始化
1:建立服务器连接
2:收到请求
3:处理要求
4:请求已完成且响应已准备就绪

我不知道这是否真的有效。我从未使用过4的different状态。

09-30 17:28
查看更多