有没有方法可以使得前一个ajax请求没有处理完毕前,下一个ajax请求先等待?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有方法可以使得前一个ajax请求没有处理完毕前,下一个ajax请求先等待?相关的知识,希望对你有一定的参考价值。

如题,我使用jQuery的keydown event,使得在一个textarea输入的同时更新一个文件,同时将更新后的文件显出在另一个窗口中。可是如果打字速度比后台php处理速度快,那么我觉得会可能产生混乱。如何处理这样的情况呢?JS本身有提供处理这种情况的机制吗?

参考技术A 不会有这种问题出现,请理解ajax的原理跟它的运行过程,简单的说ajax就是把服务器端的数据传回去给客户端,它有一个响应的过程响应代码为200还有一个完成数据返回的过程,完成代码为四,ajax本身会处理,所以不必要去担心追问

我知道有这几个statues,不过我的担心是,第二个ajax require和第一个ajax require之间本身的关联问题,是本身服务器会一次处理一个请求,还是同时处理多个?例如,当第一个请求处理进度为2的时候,第二歌请求进来,然后第一个到4了,返回。但是第二个请求已经在处理,那么,输出就会有两个,一个是第一个的,一个是第二个的,而这两个之间的输出也就没有关联可言了,因为第二个请求处理的时候并不是按照第一个的输出进行

追答

ajax是异步传输的,所以不怕啊。

本回答被提问者采纳
参考技术B 给你个思路吧,在一个ajax请求的callback回调事件里进行另一次ajax请求就可以了,也就是第一个执行完了之后再执行另一个 楼上的,人家用的是jq,你用的原生的js,当然要进行判断,如果用jq的话就可以不做判断了追问

也就是
$.ajax(
success:function()
$.ajax();

);

可是,每當我keydown的時候,我還是call最外面的$.ajax呀。

参考技术C 问题补充:本来我写了一个,但是只支持ie,火狐支持,是怎么回事呢? //判断不同浏览器,采用不同方式创建XMLHttpRequest对象 function createXmlHtt 参考技术D //判断不同浏览器,采用不同方式创建XMLHttpRequest对象
function createXmlHttpRequest()
if(window.ActiveXObject)
return new ActiveXObject("Microsoft.XMLHTTP");//windows浏览器
else if(window.XMLHttpRequest)
return new XMLHttpRequest();//其他浏览器


Flask之请求钩子

什么是请求钩子?说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册通用函数的功能。

  1. before_first_request:在处理第一个请求前执行
  2. before_request:在每次请求前执行
  3. after_request:每次请求之后调用,前提是没有未处理的异常抛出
  4. teardown_request:每次请求之后调用,即使有未处理的异常抛出

from flask import Flask
app = Flask(__name__)

@app.before_first_request
def before_first_request():
    print(‘before_first_request‘)


@app.before_request
def before_request():
    print(‘before_request‘)


@app.after_request
def after_request(resp):
    print(‘after_request‘)
    return resp


@app.teardown_request
def teardown_request(e):
    print(‘teardown_request‘)


@app.route("/")
def view_fn():
    return "view_fn"
    
if __name__ == "__main__":
    app.run()

第一次请求:


页面输出:view_fn
控制台输出: before_first_request
            before_request
            after_request
            teardown_request

第二次请求:


页面输出:view_fn
控制台输出: before_request
            after_request
            teardown_request

来源:https://segmentfault.com/a/1190000017482371

以上是关于有没有方法可以使得前一个ajax请求没有处理完毕前,下一个ajax请求先等待?的主要内容,如果未能解决你的问题,请参考以下文章

Jquery 调用了post后在数据返回前页面无法跳转

jquery ajax 放在重复点击事件beforeSend方法

wkhtmltopdf 在打印前等待条件

ajax遇到的两个小bug

防止重复数据

ajax请求响应过长怎么解决