我如何才能使此代码返回值 而不冻结浏览器 。 您当然可以用新方法重写它。
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');
编辑: 我需要至少在其他时间从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请求中获得所有二十个值。 例如,您可以采用逗号分隔的值列表,然后返回JSON对象,例如{ x: "...", y: "..." }。
{ x: "...", y: "..." }