我正在编写客户端 .NET 应用程序,需要生成一些报告。我想使用 HTML 5、CSS3 和 JavaScript 来生成显示表格数据和图形的报告:
- 生成数据集并将其另存为 XML。
- 将 XML 数据嵌入到预定义的 HTML 页面中。
- 在默认浏览器中加载 HTML 页面。
- 使用 jQuery,解析 XML,并生成显示报告所需的 HTML 元素。
- 没有网络服务器,只有我的客户端应用程序。
我在网上读到,我不应该在 HTML 页面中嵌入 XML 数据,但这似乎适用于所有主要浏览器的最新版本。我的问题是:
- 我有什么理由不应该这样做吗?
- 如果我不应该这样做,那么我还有其他选择来使用本地浏览器的功能来生成报告吗?
最佳答案
有很多东西可以在浏览器中工作或运行,但不一定受支持。与许多服务器端语言不同,错误的分号可能会导致代码无法编译,而浏览器则更加宽容。
因此,我们最终会面临一个充满碎片网站的世界,这些网站没有机会对抗 W3C 验证器。我们被赋予了如此多的绳索,以至于有时我们会用它来吊死自己。
根据您的调查和研究,您认识到 XML 可以嵌入到 HTML 中。这一成功的部分原因在于 HTML 是 XML 的松散子集。然而,HTML 有自己的规则,由中央委员会定义,决定浏览器应如何实现其功能。
我认为您使用此策略的最大风险是:仅仅因为它适用于当今的浏览器并不意味着它也适用于明天的浏览器。
换句话说,由于在 HTML 中嵌入 XML 可能不在规范中,因此浏览器 vendor 不会觉得有必要继续支持此类功能,该功能可能是由于过去的功能已从规范中删除而导致的,或者只是由于 HTML 和 XML 的相似根源而导致的怪异事故。
我不确定你的想法为什么有效,或者它是否在规范中,但我确实知道还有其他解决方案:
要回答您的替代方案问题,请查看 XSLT ,用于将 XML 文档转换为有效的 HTML。只要您的应用程序可以同时提供 XML 和 XSLT 文件,就可以在没有 Web 服务器的情况下使用它。
关于javascript - 使用本地浏览器作为基于 HTML 的报表渲染引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10457890/