-
-
Save jfsiii/708166 to your computer and use it in GitHub Desktop.
var document = require("jsdom").jsdom(), | |
window = document.createWindow(), | |
jQuery = require('jquery').create(window), | |
fs = require('fs'), | |
script = document.createElement("script"); | |
window.Canvas = require('canvas'); | |
script.src = 'https://gist.github.com/raw/790339/3b0171c3e9b749bb93fff5d642eaa687f02939a5/jquery.flot.node-canvas.js'; | |
script.onload = function () | |
{ | |
var i, d1 = [], d2 = [], d3 = []; | |
for (i = 10; --i;) d1.push([i, parseInt(Math.random() * 30)]); | |
for (i = 10; --i;) d2.push([i, parseInt(Math.random() * 30)]); | |
for (i = 10; --i;) d3.push([i, parseInt(Math.random() * 30)]); | |
var defaults = { | |
lines: { show: true, fill: true, steps: false }, | |
bars: { show: false, barWidth: 0.6 } | |
}; | |
var data = [ | |
jQuery.extend(true, {}, defaults, {data: d1}), | |
jQuery.extend(true, {}, defaults, {data: d2}), | |
jQuery.extend(true, {}, defaults, {data: d3}) | |
]; | |
var options = { | |
width: 600, height: 300, | |
grid: {clickable: true, hoverable: true} | |
}; | |
var placeholder = jQuery(''), // empty jQuery object | |
plot = jQuery.plot(placeholder, data, options), | |
node_canvas = plot.getCanvas(), | |
ctx = node_canvas.getContext('2d'), | |
out = fs.createWriteStream(__dirname + '/flot.png'), | |
stream = node_canvas.createPNGStream(); | |
stream.on('data', function ( chunk ) { | |
out.write(chunk); | |
}); | |
}; | |
document.head.appendChild(script); |
Hi, I'm having a segmentation fault when trying to execute node-flot.js.
Did you experienced the same problem ? Any clue where I can investigate ?
Thanks.
GV.
I did a quick test and it ran fine in 0.2.6
but segfaulted with 0.3.8
. Some quick debugging showed it failing after the call to jQuery.plot
.
I'll do some more digging soon, especially with node
0.4
right around the corner, but I think the issue is with node-canvas
.
I've done some follow up with this and took a different approach using jsdom.jquerify as a wrapper. Unfortunately, I ran into a dispatchEvent issue with my node-canvas going through jsdom's level2-events. Will require further investigation but I do believe there may be some integration issues with node-canvas.
@mgan59 see my updated gist @ https://gist.github.com/842175 which uses jsdom 0.2.0
The script works when run from my computer :)
I think https://gist.github.com/708166#LID8
script.src = 'http://localhost/~jschulz/node-flot/jquery.flot.svn.js';
is the source of your issues. You're likely trying to load a file you down have (jquery.flot.svn.js
) have from a non-existent directory (~jschulz/node-flot/
in the web root of the computer running the script).https://gist.github.com/708172 shows the changes I made to SVN revision 270 of
jquery.flot.js
. I've also put the patched file up at https://gist.github.com/790339.Just save that file somewhere Web accessible and change
script.src
to that address.