我用原生 JS 写了三个 ajax 请求,发现代码都是重复的,于是封装成一个方法传 url 和 data 进去,但是我在写渲染 dom 时发现,ajax 返回的值还未获取到页面就已经渲染完了,我猜想是因为 ajax 异步的原因。原本我想用定时器判断值是否为空,但是感觉这样岂不是又要写三个定时器?! 所以,现在有什么好办法让 ajax 返回数据后再次渲染页面呢? 感觉自己好笨啊,想不出灵活的办法😭
![]() |
1
cxe2v 140 天前 ![]() js 有一个神技叫 回调函数
|
![]() |
2
juzisang 140 天前
有一个东西叫 Promise
|
![]() |
3
3dwelcome 140 天前
ajax 有同步选项的,并不全是异步。
|
![]() |
4
fgwmlhdkkkw 140 天前
await
|
![]() |
5
Joker123456789 140 天前 ![]() 1. ajax 可以设置为同步的,sync:true
2. 你可以 把回调函数 传到你封装的 方法里去,把渲染的步骤写在回调里。 |
![]() |
6
ayase252 140 天前
|
![]() |
7
Felldeadbird 140 天前 ![]() 办法一:请求设置会同步。 但这样页面会卡顿。
办法二:发起请求时,页面不做渲染动作。等回调有结果再渲染。 |
![]() |
8
kop1989 140 天前 ![]() yourAjaxFuncion(url,data,callback);
调用时: yourAjaxFunction("/xxx",jsonStr,function(){}) |
![]() |
9
wunonglin 140 天前 ![]() 回调函数、Promise 、rxjs
我觉得你会问这个问题多半是基本有问题,恶补下 |
10
Elissa 140 天前
Promise all
|
11
shyangs 140 天前
看了下你的前端笔记
ES6 还没学到 Promise ? |
![]() |
13
HeFengzz OP 感谢各位花费宝贵的时间回复本帖,看完深知小弟基础太差了,马上恶补
|
![]() |
14
qfdk 140 天前 via iPhone
有个叫做 document ready 等 ready 了 再 ajax 然后回掉操作
|
![]() |
15
ychost 140 天前
ajax 回调就好啦
|
16
LawlietZ 140 天前
@qfdk 大佬,之前搜 nodejs 网关,看到了你的一个帖子 https://www.v2ex.com/t/731916 ,想交流一下,可以加个 v 吗
|
17
LawlietZ 140 天前
@qfdk 大佬,之前搜 nodejs 网关,看到了你的一个帖子 h-ttps://www.v2ex.com/t/731916 ,想交流一下,可以加个 v 吗。
|
![]() |
18
ch2 140 天前
async,await,fetch
|
![]() |
19
SxqSachin 140 天前
sync
promise callback |
20
jeepc 140 天前
先把同步异步搞清楚
|
![]() |
22
pytth 140 天前 via iPhone
jquery 的 send before 回调了解一下
|