Web.py | 通过POST和AJAX返回数据(生成器函数)
我正在使用web.py这个框架来搭建我的网站。当我点击一个按钮时,我想把数据发送到服务器,然后通过一个生成器函数/yield把数据返回给我。简单来说,就是在数据准备好时就发送,而不是等到我的数据函数完全完成后再发送。
我已经通过GET方法实现了yield,但我在用AJAX实现POST时遇到了问题。
def POST(self):
web.header('Content-type','text/html')
web.header('Transfer-Encoding','chunked')
yield "hello"
sleep(10)
yield "hello"
这是我的JavaScript代码:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#button").click(function() {
jQuery.ajax({
type: "POST",
dataType: "text",
cache: false,
success: function(data){
jQuery("#container").html(data)
}
}); }); });
</script>
输出结果:
HelloHello (after 10 seconds)
rather than..
Hello (10 second delay) Hello
注意:我在本地机器上使用的是web.py自带的服务器。
1 个回答
2
真是我傻了 - AJAX不支持流式传输。所以在这种情况下,Comet或者HTML5的WebSockets就派上用场了。