小编bwl*_*lee的帖子

Python Flask,如何从前端Javascript检测SSE客户端断开连接

也许这是Flask的一个问题,没有办法在服务器端处理断开连接事件.

在Response类中,有一个名为"call_on_close"的方法,我们可以在其中添加一个没有参数的函数,例如on_close(),它会在响应对象的close方法被调用时触发,但是当我调用EventSource时这不会发生.在Javascript中从客户端关闭().

服务器端的代码:

from flask import Response
r = Response(stream(), ...)
r.call_on_close(on_close)
return r 

def on_close():
  print "response is closed!"

def stream():
  ...  # subscribe to redis
  for message in pubsub.listen():
    ....
    yield 'data: %s\n\n' % message
Run Code Online (Sandbox Code Playgroud)

在客户端:使用SSE向页面添加卸载处理程序

$(window).unload(
  function() {
    sse.close();
  }
}
Run Code Online (Sandbox Code Playgroud)

什么都错了?

任何建议或解决方案与代码表示赞赏!

提前致谢!

python flask server-sent-events

13
推荐指数
2
解决办法
2091
查看次数

是否可以提交隐藏字段并使用x-editable控制其值?

在X-editable的文档中,我们可以创建一个新记录,但是如何编辑现有记录,并将其名称和电子邮件字段以及它的id = 1(此ID未更改)发布到后端?

<table>
    <thead><th>id</th><th>name</th><td>email</th></thead>
    <tbody?
        <tr><td><span>1</span></td><td><span class='myeditable'>name</span></td><td><span class='myeditable'>email@example.com</span></td></tr>
    </tbody>
</table>

$('.myeditable').editable({
    type: input,
    url: '/edituser'
});

$('#save-btn').click(function() {
    $('.myeditable').editable('submit', {
        url: '/edituser',
        ajaxOptions: {
            dataType: 'json' //assuming json response
        },
        success: function(data, config) {
            if(data && data.id) { //record created, response like {"id": 2}
            },
            error: function(errors) {
            }
    });
});
Run Code Online (Sandbox Code Playgroud)

hidden field submit x-editable

5
推荐指数
1
解决办法
1858
查看次数

如何从cpp代码中调用R函数作为工作线程?使用Rcpp包

我在使用Rcpp时发现了一个奇怪的问题,也许这是Rcpp包中已知的限制,但我没有通过搜索相关文档找到任何提示,希望有人可以帮助或解释这个问题.

这是我的代码:

// [[Rcpp::export]]
void set_r_cb(Function f) {
  Environment env = Environment::global_env();
  env["place_f"] = f;
}
void __test_thread(void* data) {
  Rprintf("in thread body\n");
  Function f("place_f");
  f(*((NumericVector*)data));
}

// [[Rcpp::export]]
NumericVector use_r_callback(NumericVector x) {
  Environment env = Environment::global_env();
  Function f = env["place_f"];
{  // test thread 
  tthread::thread t(__test_thread, x);
  t.join();
}  
  return f(x);
}
Run Code Online (Sandbox Code Playgroud)

在R代码中的位置:

> x = runif(100)
> set_r_cb(fivenum)
Run Code Online (Sandbox Code Playgroud)

当没有线程调用时,一切正常.返回这样的东西:

> use_r_callback(x)
[1] 0.01825808 0.24010829 0.37492796 0.58618216 0.93935818
Run Code Online (Sandbox Code Playgroud)

使用线程代码时,我收到了这样的错误:

> use_r_callback(x)
in thread body
Error: C stack usage  237426928 …
Run Code Online (Sandbox Code Playgroud)

multithreading r rcpp

0
推荐指数
1
解决办法
495
查看次数