也许这是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)
什么都错了?
任何建议或解决方案与代码表示赞赏!
提前致谢!
在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) 我在使用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)