我怎样才能让这段代码返回值无需冻结浏览器.
当然,您可以用新方法重写它。
function get_char_val(merk)
{
var returnValue = null;
$.ajax({
type: "POST",
async: false,
url: "char_info2.php",
data: { name: merk },
dataType: "html",
success: function(data)
{
returnValue = data;
}
});
return returnValue;
}
var px= get_char_val('x');
var py= get_char_val('y');
EDIT: 其他时候我需要从 php 文件中获取至少 20 个变量。
这不可能。
Javascript运行在UI线程上;如果您的代码等待服务器回复,则浏览器必须保持冻结状态。
相反,您需要使用回调返回值:
function get_char_val(merk, callback)
{
var returnValue = null;
$.ajax({
type: "POST",
url: "char_info2.php",
data: { name: merk },
dataType: "html",
success: function(data) {
callback(data);
}
});
}
get_char_val('x', function(px) { ... });
get_char_val('y', function(py) { ... });
请注意,这两个回调将以不可预测的顺序运行。
您应该修改您的设计,以便可以在单个 AJAX 请求中获取所有 20 个值。
例如,您可以采用逗号分隔的值列表,并返回一个 JSON 对象,例如{ x: "...", y: "..." }
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)