V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
HeFengzz
V2EX  ›  JavaScript

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

  •  
  •   HeFengzz · 140 天前 · 2386 次点击
    这是一个创建于 140 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    22 条回复    2021-12-28 00:57:03 +08:00
    cxe2v
        1
    cxe2v  
       140 天前   ❤️ 1
    js 有一个神技叫 回调函数
    juzisang
        2
    juzisang  
       140 天前
    有一个东西叫 Promise
    3dwelcome
        3
    3dwelcome  
       140 天前
    ajax 有同步选项的,并不全是异步。
    fgwmlhdkkkw
        4
    fgwmlhdkkkw  
       140 天前
    await
    Joker123456789
        5
    Joker123456789  
       140 天前   ❤️ 1
    1. ajax 可以设置为同步的,sync:true
    2. 你可以 把回调函数 传到你封装的 方法里去,把渲染的步骤写在回调里。
    Felldeadbird
        7
    Felldeadbird  
       140 天前   ❤️ 1
    办法一:请求设置会同步。 但这样页面会卡顿。
    办法二:发起请求时,页面不做渲染动作。等回调有结果再渲染。
    kop1989
        8
    kop1989  
       140 天前   ❤️ 1
    yourAjaxFuncion(url,data,callback);
    调用时:
    yourAjaxFunction("/xxx",jsonStr,function(){})
    wunonglin
        9
    wunonglin  
       140 天前   ❤️ 1
    回调函数、Promise 、rxjs

    我觉得你会问这个问题多半是基本有问题,恶补下
    Elissa
        10
    Elissa  
       140 天前
    Promise all
    shyangs
        11
    shyangs  
       140 天前
    看了下你的前端笔记

    ES6 还没学到 Promise ?
    HeFengzz
        12
    HeFengzz  
    OP
       140 天前
    @shyangs 还没😥,你在 git 上看的我的笔记吗😂
    HeFengzz
        13
    HeFengzz  
    OP
       140 天前
    感谢各位花费宝贵的时间回复本帖,看完深知小弟基础太差了,马上恶补
    qfdk
        14
    qfdk  
       140 天前 via iPhone
    有个叫做 document ready 等 ready 了 再 ajax 然后回掉操作
    ychost
        15
    ychost  
       140 天前
    ajax 回调就好啦
    LawlietZ
        16
    LawlietZ  
       140 天前
    @qfdk 大佬,之前搜 nodejs 网关,看到了你的一个帖子 https://www.v2ex.com/t/731916 ,想交流一下,可以加个 v 吗
    LawlietZ
        17
    LawlietZ  
       140 天前
    @qfdk 大佬,之前搜 nodejs 网关,看到了你的一个帖子 h-ttps://www.v2ex.com/t/731916 ,想交流一下,可以加个 v 吗。
    ch2
        18
    ch2  
       140 天前
    async,await,fetch
    SxqSachin
        19
    SxqSachin  
       140 天前
    sync
    promise
    callback
    jeepc
        20
    jeepc  
       140 天前
    先把同步异步搞清楚
    qfdk
        21
    qfdk  
       140 天前 via iPhone
    @LawlietZ github 邮件联系吧 要不然微信给➕爆了
    pytth
        22
    pytth  
       140 天前 via iPhone
    jquery 的 send before 回调了解一下
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3919 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 01:36 · PVG 09:36 · LAX 18:36 · JFK 21:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.