我在javascript类中创建了一个函数,该类转到php文件并从数据库返回信息。
这个功能效果很好,但我尝试使用 async:true,,但我的功能不适用于这个功能。 (我有这个警告信息:L'utilization d'XMLHttpRequestdefaçonssynchrononesur le fil d'exécutionprincipestobsolèteàinsde de sonimpactnégatifurla navigation de l'utilisateur final。)
你有什么想法,我怎么能让它运作?一位朋友告诉我尝试“回调”,但我不知道它是如何运作的。
getInfoFromDB: function() {
var info;
$.ajax({
url: "./fonctions/ajax/members.php",
type: "POST",
dataType: 'html',
success: function(data) {
info = data;
},
async: false,
});
return info;
}
答案 0 :(得分:2)
您必须更改getInfoFromDB()
以返回info
以外的内容。例如,您可以改为return a Promise
。如果您只返回$.ajax()
的返回值,则会得到Promise
- 类似于解析为data
的内容。
getInfoFromDB: function() {
return $.ajax({
url: "./fonctions/ajax/members.php",
type: "POST",
dataType: 'html',
});
}
但是,您必须更新调用getInfoFromDB()
的所有地方以支持异步行为。例如:
myObject.getInfoFromDB().then(function (info) {
doSomethingWith(info);
});
来自jQuery.ajax()
的文档:
jQuery 1.5中
$.ajax()
返回的jqXHR对象实现了Promise接口,为它们提供了Promise的所有属性,方法和行为(有关详细信息,请参阅Deferred object)。