我正在使用 .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
。
这可能是由于某些版本兼容性所致。
有人意识到这种行为吗?
你是对的,新的公平使用政策建议可能会施加限制,尤其是当许多请求发送到服务器时。如果这是您的用例,我建议您设置您自己的导出服务器或使用离线导出模块。
离线导出的使用方法非常简单:https://jsfiddle.net/9cheza5d/
导入模块时,默认情况下,所有图表都会导出,无需向导出服务器发出额外请求(但并非总是如此,这里的图表显示了何时:https://assets.highcharts.com/images/client-side-导出流.svg)
其他值得记住的事情:
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 中重现它,请分享一个链接,我会进行调查。