使用 highcharts 离线编码并将其捆绑到 C# .net

问题描述 投票:0回答:1

我正在使用 .NET 版本 4.8。

另外,使用high-chart(当前版本8.0.0

我最近看到高图表隐私免责声明,我需要标题: 推荐人用户代理

正如high-chart的说法,每当我对网站发出太多请求时,我就会被屏蔽,所以我更需要建立自己的服务器,如high-chart设置服务器的解释

我看到标题在我的代码中正确传递,但是仍然存在异常,即对 highchart 导出的调用被阻止。

据我了解,我可以使用

offline-exporting.js

我有旧版本的

exporting.js
- Highcharts JS v8.0.0 (2019-12-10)

在bundleConfig.cs中,包含highchat json的代码是:

bundles.Add(new ScriptBundle("~/bundles/highcharts").Include(
    "~/Scripts/highcharts.js",
    "~/Scripts/exporting.js",
    "~/Scripts/drilldown.js",
    "~/Scripts/no-data-to-display.js",
    "~/Scripts/highcharts-3d.js",
    "~/Scripts/highcharts-more.js",
    "~/Scripts/histogram-bellcurve.js"));

我刚刚添加到列表中

offline-exporting.js
,但脚本出现异常:

TypeError:无法按原样解构“t”的属性“isSafari” 未定义。

offline-exporting.js 新版本为:Highcharts JS v11.4.8 (2024-08-29)

我没有找到任何用于添加此离线导出的文档,以及要在捆绑包中放入什么内容(这是一个新版本 - v11.4.8 与旧版本 v8.0.0)。

另外对于导出条款,我添加了:

fallbackToExportServer: false

exporting: {
    fallbackToExportServer: false,
    buttons: {
        contextButton: {
            menuItems: [
                'printChart',
                'separator',
                'downloadPNG',
                'downloadJPEG',
                'downloadPDF',
                'downloadSVG'
            ]
        }
    }
}

为了在我的代码中包含和实现

offline-exporting.js
,并执行一切必要的操作(更改
bundleConfig.cs
等),可以做什么?

此外,当尝试渲染到新版本的 highchart(8.0.0 -> v11.4.8)时,任何升级都会破坏代码,可能是损坏的 webgrease 库,正如我在一些帖子中看到的那样:webgreeze 问题

从那时起,当尝试添加 highcharts 的 *.js 新版本时:

@section scripts{
    ...
    @Scripts.Render("~/bundles/highcharts")
}

我得到:

System.NullReferenceException:“对象引用未设置为 对象的实例。'

(异常)来源:

WebGrease

这可能是由于某些版本兼容性所致。

有人意识到这种行为吗?

.net highcharts bundle
1个回答
0
投票

你是对的,新的公平使用政策建议可能会施加限制,尤其是当许多请求发送到服务器时。如果这是您的用例,我建议您设置您自己的导出服务器或使用离线导出模块。

离线导出的使用方法非常简单:https://jsfiddle.net/9cheza5d/

导入模块时,默认情况下,所有图表都会导出,无需向导出服务器发出额外请求(但并非总是如此,这里的图表显示了何时:https://assets.highcharts.com/images/client-side-导出流.svg)

其他值得记住的事情:

  1. 您需要拥有相同版本的 Highcharts,
    exporting.js
    offline-exporting.js
    :
<script src="https://code.highcharts.com/8.0.0/highcharts.js"></script>
<script src="https://code.highcharts.com/8.0.0/modules/exporting.js"></script>
<script src="https://code.highcharts.com/8.0.0/modules/offline-exporting.js"></script>

不能混合不同版本 - 我建议您对导入的所有 Highcharts 软件包使用 11.4.8。这很可能是

isSafari
问题的罪魁祸首,因为我无法使用 v8 或 v11 重现它。如果您可以在 JSFiddle 中重现它,请分享一个链接,我会进行调查。

  1. 关于webgrease,我建议你清除缓存并重新捆绑资源——如果你的配置正确,应该会有帮助。

  2. 如果您有一些关于离线导出的自定义 JS 代码,您可以使用

    exportChartLocal
    记录的方法这里,这里有一个演示

© www.soinside.com 2019 - 2024. All rights reserved.