ajax请求,函数外无法获取请求的数据问题解决
一、开发中遇到需要通过ajax请求获取其他函数能否执行的状态,但是当赋值给statusFlag时发现无法赋值:ajax请求默认为异步的方式,该请求的操作被放置在任务队列中,并不会按顺序执行,所以被赋值的参数并没有取到后台传回的状态,因此只需要把该操作改为同步即可:
//异步请求获取下载的状态 function getDownloadStatus(deviceMacType){ let btnStatusMacs = false; $.ajax({ type: 'GET', url: 'xxxxx', async: false,//默认是true,也就是异步请求 success: function(data){ let len = data.list.length; if(len > 0){ for(var i=0; i<len; i++){ if(data.list[i] === deviceMacType){ btnStatusMacs = true; } } } } }); return btnStatusMacs; }
而后直接在别的函数中调用并判断即可;
二、在使用table进行前端分页操作时:
1.AJAX异步请求tabledata,在success函数中将请求的data保存在cookie或者localStorage中,首次渲染表格,仅需在success回调中截取固定长度的数据即可,此后的翻页与当修改前页面显示的数据量,数据源都是来自cookie或localStorage。