【问题标题】:Async client side XSLT异步客户端 XSLT
【发布时间】:2018-06-28 19:02:52
【问题描述】:

对于客户端 XSLT,我已按照 w3schools 的说明进行操作,并且运行良好。然而,它给出了同步请求已被弃用的警告。 我已经搜索了很长时间,找到了一些代码,尝试了它并惨遭失败。所以我的问题是:应该如何修改 w3schools 示例以使请求异步?

编辑:Martin Honnen 的评论有一个完美的解决方案,我认为我的问题已得到解答。

【问题讨论】:

  • w3schools 在大多数情况下是一个很差的资源,您链接的示例代码也不例外。内联处理程序,在各处隐式创建全局变量,ActiveXObject...
  • 您可以使用带有XMLHttpRequest 的异步请求,也可以利用Promises 来确保您同时加载了XML 输入和XSLT,参见github.com/martin-honnen/martin-honnen.github.io/blob/master/… 的示例。
  • 出色的马丁!效果很好,非常感谢!

标签: javascript asynchronous xslt xmlhttprequest


【解决方案1】:

您可能想看看 Saxon-JS,它提供了比浏览器内置的 XSLT 1.0 引擎更多的功能:

  • 它支持 XSLT 3.0 而不是 1.0(支持正则表达式、分组、日期/时间处理、JSON 支持等)
  • 它允许您从样式表中处理用户交互
  • 它允许您从样式表中发出异步 HTTP 请求
  • 它提供了一个更简单的 API:您可以将您的示例设为

JS代码:

 SaxonJS.transform({
      "stylesheetLocation" : "cdcatalog.xsl",
      "sourceLocation"     : "cdcatalog.xml"})

免责声明:这是我公司的产品。

更多信息http://www.saxonica.com/saxon-js/index.xml

(浏览器在加载 Saxon-JS 时会发出“同步访问”警告,但您可以忽略它,因为同步访问只是为了支持您理想情况下不应该使用的 document() 函数。 )

【讨论】:

    猜你喜欢
    • 2017-12-15
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 2016-09-07
    • 2014-04-07
    • 1970-01-01
    相关资源
    最近更新 更多