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上使用切片
资料来源: