是否可以在 highcharts(当前版本 9.0.1)中不启用 WebGL 的情况下使用 boost-canvas?

Is it possible to use boost-canvas without enable WebGL in highcharts (current version 9.0.1)?

由于 highcharts boost 模块强制线宽 = 1px 限制,我想使用 boost-canvas 作为默认禁用 WebGL。

我发现了一些讨论:

我已经试过了window.WebGLRenderingContext = undefined,但是报错:

TypeError: h.eachAsync is not a function
renderCanvas boost.src.js:2953
a boost.src.js:3374
b highcharts.src.js:2582
renderSeries highcharts.src.js:30838
renderSeries highcharts.src.js:30833
render highcharts.src.js:30985
firstRender highcharts.src.js:31201
init highcharts.src.js:29470
e highcharts.src.js:1384
init highcharts.src.js:29390
getArgs highcharts.src.js:29377
f highcharts.src.js:29371
C stock.src.js:10157

是否有任何教程强制将 boost-canvas 作为具有更好线宽的 highcharts 的默认值?

感谢@ppotaczek,它成功了。但是工具提示给出了另一个错误:

Uncaught TypeError: a is undefined
    applyInactiveState highcharts.src.js:24615
    applyInactiveState highcharts.src.js:24611
    runPointActions highcharts.src.js:25805
    onContainerMouseMove highcharts.src.js:25447
    setDOMEvents highcharts.src.js:25958
    setDOMEvents highcharts.src.js:26526
    init highcharts.src.js:25279
    init highcharts.src.js:26469
    f highcharts.src.js:24604
    f highcharts.src.js:26425
    firstRender highcharts.src.js:31201
    init highcharts.src.js:29470
    e highcharts.src.js:1384
    init highcharts.src.js:29390
    getArgs highcharts.src.js:29377
    f highcharts.src.js:29371
    C stock.src.js:10157

你能帮我解决一下吗?

boost-canvas 模块中对 eachAsync 函数的引用错误 - 可能是 Highcharts 中的错误。如果您添加以下插件,该插件在 Highcharts 命名空间中存储对该函数的引用,该模块将正常工作。

(function(H) {
    H.eachAsync = function(arr, fn, finalFunc, chunkSize, i, noTimeout) {
        i = i || 0;
        chunkSize = chunkSize || 30000;

        var threshold = i + chunkSize,
            proceed = true;

        while (proceed && i < threshold && i < arr.length) {
            proceed = fn(arr[i], i);
            ++i;
        }

        if (proceed) {
            if (i < arr.length) {
                if (noTimeout) {
                    H.eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout);
                } else if (window.requestAnimationFrame) {
                    // If available, do requestAnimationFrame - shaves off a few ms
                    window.requestAnimationFrame(function() {
                        H.eachAsync(arr, fn, finalFunc, chunkSize, i);
                    });
                } else {
                    setTimeout(function() {
                        H.eachAsync(arr, fn, finalFunc, chunkSize, i);
                    });
                }

            } else if (finalFunc) {
                finalFunc();
            }
        }
    };
})(Highcharts)

现场演示: http://jsfiddle.net/BlackLabel/qrsk4nep/

文档: https://www.highcharts.com/docs/extending-highcharts/extending-highcharts