我有以下电话:
getData(0);
getData(1);
getData(2);
Run Code Online (Sandbox Code Playgroud)
这些调用javascript函数:
function getData(Code) {
$.post('/adminA/GetData',
{ Code: Code },
function (data) {
Run Code Online (Sandbox Code Playgroud)
问题是我的数据无序返回.有没有办法让我按顺序返回数据?
Cha*_*ndu 17
另一种方法是使用ajaxSetup
function getData(Code) {
$.ajaxSetup({async: false});
$.post('/adminA/GetData',{
Code: Code }, function (data) {
// Do Something
});
$.ajaxSetup({async: true}); //So as to avoid any other ajax calls made sybchrounously
}
Run Code Online (Sandbox Code Playgroud)
同步调用这三个ajax请求将冻结您的浏览器.你最好使用jQuery的Deferred对象.试试这个:
function getData(Code) {
return $.post('/adminA/GetData', { Code: Code }, function (data) {/*etc.*/});
}
getData(0).done(function() {
getData(1).done(function() {
getData(2);
});
});
Run Code Online (Sandbox Code Playgroud)
您还应该考虑将您的调用组合成一个,并更改服务器逻辑以处理它.这最终将比三个请求更快:
function getData(firstCode, secondCode, thirdCode) {
$.post('/adminA/GetData', {
codeOne : firstCode,
codeTwo : secondCode,
codeThree : thirdCode
}, function (data) {/*etc.*/});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18209 次 |
最近记录: |