我在我的网站上使用jQuery的ajax功能,需要显示一个进度/加载指示器。
我的困境是:
1. 同步AJAX锁定了浏览器,所以我无法做任何事情(例如显示加载指示器),直到内容返回,那时为时已晚。
2. 我正在使用JSON作为返回数据类型,并且设置async = true会返回一个空响应字符串。
3. 我的整个框架依赖于返回类型为JSON格式。
我似乎找不到任何办法让JS向用户显示某些东西正在进行中,除了使用alert()。(出于某种原因,警报确实有效)。
有什么建议吗?
我的代码:
JS
我的困境是:
1. 同步AJAX锁定了浏览器,所以我无法做任何事情(例如显示加载指示器),直到内容返回,那时为时已晚。
2. 我正在使用JSON作为返回数据类型,并且设置async = true会返回一个空响应字符串。
3. 我的整个框架依赖于返回类型为JSON格式。
我似乎找不到任何办法让JS向用户显示某些东西正在进行中,除了使用alert()。(出于某种原因,警报确实有效)。
有什么建议吗?
我的代码:
JS
var jqXHR = $.ajax(
{
type: "POST",
url: url,
cache: false,
data: params, // array of parameters
async: false, // responseText is empty if set to true
dataType: 'json',
error: function()
{
alert("Ajax post request to the following script failed: " + url);
}
} );
var html = jqXHR.responseText;
PHP
$return = array();
$return['status'] = 1;
$return['message'] = "some html here ...";
echo json_encode($return);