我目前正在用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状态。