Javascript 方法未按正确顺序调用/异步方法
当我尝试按此顺序加载这些函数时,出现了一个问题: 顺便说一下,我正在使用Datatables和jQuery,我相信你们中的许多人可能已经知道了Javascript 方法未按正确顺序调用/异步方法,javascript,jquery,ajax,datatables,jquery-events,Javascript,Jquery,Ajax,Datatables,Jquery Events,当我尝试按此顺序加载这些函数时,出现了一个问题: 顺便说一下,我正在使用Datatables和jQuery,我相信你们中的许多人可能已经知道了 currPage = LookupPts.oTable.fnPagingInfo(); LookupPts.oTable.fnReloadAjax(); LookupPts.oTable.fnPageChange(currPage.iPage); 当我尝试在fnReloadAjax()之后立即运行fnPageChange()时失败 我知道这是一个时间问
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax();
LookupPts.oTable.fnPageChange(currPage.iPage);
当我尝试在fnReloadAjax()之后立即运行fnPageChange()
时失败
我知道这是一个时间问题,因为异步fnReloadAjax
,
我的问题是,当fnReloadAjax
完成时,如何调用fnPageChange
。查看fnReloadAjax()
具有以下特征:
fnReloadAjax=函数(oSettings、sNewSource、fnCallback、bStandingRedraw)
{}
因此,您可以传递回调函数作为AJAX调用完成时要执行的第三个参数。试试这个:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function() {
LookupPts.oTable.fnPageChange(currPage.iPage);
});
查看fnReloadAjax()
具有以下特征:
fnReloadAjax=函数(oSettings、sNewSource、fnCallback、bStandingRedraw)
{}
因此,您可以传递回调函数作为AJAX调用完成时要执行的第三个参数。试试这个:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function() {
LookupPts.oTable.fnPageChange(currPage.iPage);
});
试试这个:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function() {
LookupPts.oTable.fnPageChange(currPage.iPage);
});
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function() {
LookupPts.oTable.fnPageChange(currPage.iPage);
}
试试这个:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function() {
LookupPts.oTable.fnPageChange(currPage.iPage);
});
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function() {
LookupPts.oTable.fnPageChange(currPage.iPage);
}
您需要实现一个回调,因为Javascript是一种非阻塞语言,不能一步一步地执行命令。因此,您需要在方法完成后运行回调
我只是查看了重载Ajax方法的定义(我从未使用过这个)。如果我得到的是正确的函数(oSettings、sNewSource、fnCallback、bstandinredraw)),那么下面的代码应该可以工作:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function(){
LookupPts.oTable.fnPageChange(currPage.iPage);
});
您需要实现一个回调,因为Javascript是一种非阻塞语言,不能一步一步地执行命令。因此,您需要在方法完成后运行回调
我只是查看了重载Ajax方法的定义(我从未使用过这个)。如果我得到的是正确的函数(oSettings、sNewSource、fnCallback、bstandinredraw)),那么下面的代码应该可以工作:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, null, function(){
LookupPts.oTable.fnPageChange(currPage.iPage);
});
好吧,我把它修好了
在我发布我的问题之前,我尝试了你们所有人描述的相同方法,但我仍然遇到同样的问题。由于某种原因,它不起作用
我要怎么做才能修好它
调试插件后,我发现参数的顺序不正确。pluggin的参数有:oSettings、sNewSource、bStandingRedraw、fnCallback
我注意到当调用该方法时,我的参数顺序不正确。我的顺序是oSettings=object,nNewSource=null,fnCallback=null,bStandingRedraw=function
诀窍是按正确的顺序放置参数,如下所示,回调作为参数列表中的第二个参数:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, function(){
LookupPts.oTable.fnPageChange(currPage.iPage);
console.log("finished loading the page details");
}, null);
我对第一个参数的设置感到困惑。顺便问一下,第一个参数是如何与对象一起加载的?
谢谢大家 好吧,我把它修好了
在我发布我的问题之前,我尝试了你们所有人描述的相同方法,但我仍然遇到同样的问题。由于某种原因,它不起作用
我要怎么做才能修好它
调试插件后,我发现参数的顺序不正确。pluggin的参数有:oSettings、sNewSource、bStandingRedraw、fnCallback
我注意到当调用该方法时,我的参数顺序不正确。我的顺序是oSettings=object,nNewSource=null,fnCallback=null,bStandingRedraw=function
诀窍是按正确的顺序放置参数,如下所示,回调作为参数列表中的第二个参数:
currPage = LookupPts.oTable.fnPagingInfo();
LookupPts.oTable.fnReloadAjax(null, function(){
LookupPts.oTable.fnPageChange(currPage.iPage);
console.log("finished loading the page details");
}, null);
我对第一个参数的设置感到困惑。顺便问一下,第一个参数是如何与对象一起加载的?
谢谢大家