Web.py | 通过POST和AJAX返回数据(生成器函数)

4 投票
1 回答
1432 浏览
提问于 2025-04-17 07:05

我正在使用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就派上用场了。

撰写回答