我在我的网站上使用 ajax 和 jQuery,需要显示进度/加载指示器。
我的困境是这样的:
- 同步 AJAX 会锁定浏览器,所以在返回内容之前我什么都做不了(例如显示加载指示器),到那时为时已晚
- 我使用 JSON 作为返回数据类型并设置 async = true 返回一个空响应字符串
- 我的整个框架依赖于 JSON 格式的返回类型
除了执行 alert() 之外,我似乎找不到任何方法让 JS 向用户指示某事正在进行中。(出于某种原因,警报确实有效)。
有什么建议么?
我的代码:
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);