Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python(瓶子)-异步响应-处理客户端(javascript)_Javascript_Python_Ajax_Asynchronous_Bottle - Fatal编程技术网

python(瓶子)-异步响应-处理客户端(javascript)

python(瓶子)-异步响应-处理客户端(javascript),javascript,python,ajax,asynchronous,bottle,Javascript,Python,Ajax,Asynchronous,Bottle,我在瓶子上找到了关于异步响应的示例 下面是稍加修改的代码: from gevent import monkey; monkey.patch_all() from time import sleep from bottle import hook, response, route, run @route('/stream') def stream(): yield 'START' sleep(3) yield '\nPROGRESS 1' sleep(3)

我在瓶子上找到了关于异步响应的示例

下面是稍加修改的代码:

from gevent import monkey; monkey.patch_all()

from time import sleep
from bottle import hook, response, route, run


@route('/stream')
def stream():
    yield 'START'
    sleep(3)
    yield '\nPROGRESS 1'
    sleep(3)
    yield '\nPROGRESS 2'
    sleep(3)
    yield '\nPROGRESS 3'
    sleep(3)
    yield '\nEND'

run(host='0.0.0.0', port=8080, server='gevent')
从浏览器调用此视图的工作原理如中所述:

如果运行此脚本并将浏览器指向 ,您应该看到开始、中间和结束 一个接一个地出现(而不是等待8秒来同时看到他们 一次)

我想知道如何在AJAX请求中通过Javascript处理这个问题,特别是使用JQuery,以便按顺序显示消息

有什么帮助吗

jQuery不支持这一点,但您可以使用普通XHR实现这一点:

var xhr = new XMLHttpRequest()
xhr.open("GET", "/test/chunked", true)
xhr.onprogress = function () {
  console.log("PROGRESS:", xhr.responseText)
}
xhr.send()
这适用于所有现代浏览器,包括IE10。这里是W3C规范

这里的缺点是xhr.responseText包含一个 回答可以在其上使用子字符串,但更好的方法是使用 responseType属性,并在ArrayBuffer上使用切片

资料来源: