如何在 ajax 返回数据后渲染页面,且不在 ajax 内操作

2021-12-27 11:13:30 +08:00
 HeFengzz

如何在 ajax 返回数据后再次渲染表格?

我用原生 JS 写了三个 ajax 请求,发现代码都是重复的,于是封装成一个方法传 url 和 data 进去,但是我在写渲染 dom 时发现,ajax 返回的值还未获取到页面就已经渲染完了,我猜想是因为 ajax 异步的原因。原本我想用定时器判断值是否为空,但是感觉这样岂不是又要写三个定时器?! 所以,现在有什么好办法让 ajax 返回数据后再次渲染页面呢? 感觉自己好笨啊,想不出灵活的办法😭

3020 次点击
所在节点    JavaScript
22 条回复
cxe2v
2021-12-27 11:18:29 +08:00
js 有一个神技叫 回调函数
juzisang
2021-12-27 11:22:21 +08:00
有一个东西叫 Promise
3dwelcome
2021-12-27 11:41:34 +08:00
ajax 有同步选项的,并不全是异步。
fgwmlhdkkkw
2021-12-27 12:30:28 +08:00
await
Joker123456789
2021-12-27 12:42:09 +08:00
1. ajax 可以设置为同步的,sync:true
2. 你可以 把回调函数 传到你封装的 方法里去,把渲染的步骤写在回调里。
ayase252
2021-12-27 13:23:37 +08:00
Felldeadbird
2021-12-27 13:35:44 +08:00
办法一:请求设置会同步。 但这样页面会卡顿。
办法二:发起请求时,页面不做渲染动作。等回调有结果再渲染。
kop1989
2021-12-27 13:37:39 +08:00
yourAjaxFuncion(url,data,callback);
调用时:
yourAjaxFunction("/xxx",jsonStr,function(){})
wunonglin
2021-12-27 13:44:55 +08:00
回调函数、Promise 、rxjs

我觉得你会问这个问题多半是基本有问题,恶补下
Elissa
2021-12-27 14:12:58 +08:00
Promise all
shyangs
2021-12-27 14:16:02 +08:00
看了下你的前端笔记

ES6 还没学到 Promise ?
HeFengzz
2021-12-27 14:50:41 +08:00
@shyangs 还没😥,你在 git 上看的我的笔记吗😂
HeFengzz
2021-12-27 14:53:37 +08:00
感谢各位花费宝贵的时间回复本帖,看完深知小弟基础太差了,马上恶补
qfdk
2021-12-27 15:01:25 +08:00
有个叫做 document ready 等 ready 了 再 ajax 然后回掉操作
ychost
2021-12-27 15:21:13 +08:00
ajax 回调就好啦
LawlietZ
2021-12-27 16:24:10 +08:00
@qfdk 大佬,之前搜 nodejs 网关,看到了你的一个帖子 https://www.v2ex.com/t/731916 ,想交流一下,可以加个 v 吗
LawlietZ
2021-12-27 16:24:45 +08:00
@qfdk 大佬,之前搜 nodejs 网关,看到了你的一个帖子 h-ttps://www.v2ex.com/t/731916 ,想交流一下,可以加个 v 吗。
ch2
2021-12-27 16:25:14 +08:00
async,await,fetch
SxqSachin
2021-12-27 16:51:01 +08:00
sync
promise
callback
jeepc
2021-12-27 16:57:27 +08:00
先把同步异步搞清楚

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824635

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX