我正在制作一个仪表板,用户可以在其中构建自己的可视化(使用plotly.js).有时,这些可视化的复杂性导致渲染时间过长,导致浏览器UI冻结.
我已经在仪表板中为其他任务创建了Web工作者.也许有一种方法可以在web-worker中渲染plotly.js图并将它们返回给主线程?
我知道网络工作者没有DOM/Canvas能力.但也许有诀窍或你知道更好的方法来防止GUI冻结?也许用phantomjs将渲染外包给服务器(我从来没有使用它,所以它只是猜测它可以与pjs一起使用).
我在访问 logstash(最新版本)中的嵌套 JSON 字段时遇到问题。
我的配置文件如下:
input {
http {
port => 5001
codec => "json"
}
}
filter {
mutate {
add_field => {"es_index" => "%{[statements][authority][name]}"}
}
mutate {
gsub => [
"es_index", " ", "_"
]
}
mutate {
lowercase => ["es_index"]
}
ruby {
init => "
def remove_dots hash
new = Hash.new
hash.each { |k,v|
if v.is_a? Hash
v = remove_dots(v)
end
new[ k.gsub('.','_') ] = v
if v.is_a? Array
v.each { |elem|
if elem.is_a? Hash
elem …Run Code Online (Sandbox Code Playgroud) 我知道这个问题被多次询问,但遗憾的是,似乎没有什么对我有用.
我将img的src发布到我的node/express.它看起来像这样:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JF ... UUUUAFFFFAH/2Q==
Run Code Online (Sandbox Code Playgroud)
数据保存在图片中.我剪切了数据:image-stuff并获得了原始base64和文件类型.
var result = {
"type":"",
"data":""
}
var matches = picture.match(/^data:image\/([A-Za-z-+\/]+);base64,(.+)$/),response = {};
result.type = matches[1];
result.data = new Buffer(matches[2], 'base64');
require('fs').writeFile(mediaFolder+'/test.'+result.type, result.data, "binary", function(err){
res.status(500).send("error");
});
res.status(200).send("success");
Run Code Online (Sandbox Code Playgroud)
当我尝试打开保存的图像时,它说:损坏或太大.我还尝试在writeFile方法中设置"binary"参数.客户端始终获得200 http状态.
我不知道这有什么问题.我用在线解码器检查了原始base64字符串.它工作得很好.我记录了每一个字符串/匹配,一切看起来都没问题.
任何帮助都可以很好地解决这个问题.
提前致谢!
编辑:
这就是我发送图片的方式:
var base64Image = $('#show-picture').attr('src');
xmlhttp.open("POST","/webapp-ajax",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("picture="+base64Image);
Run Code Online (Sandbox Code Playgroud) javascript ×2
base64 ×1
express ×1
image ×1
json ×1
logstash ×1
node.js ×1
plotly ×1
web-worker ×1