【问题标题】:generate HTML document server-side with jquery and classic asp使用 jquery 和经典 asp 在服务器端生成 HTML 文档
【发布时间】:2010-09-14 14:42:44
【问题描述】:

这是我的问题,

知道经典的asp支持服务器端javascript,是否有可能生成“服务器端HTML”发送给客户端,比如 Response.write $(page).html()

当然用 jQuery 来做会很棒,因为它很容易解析复杂的结构和操作它们。

我能想到的唯一会阻止我这样做的问题是,经典的 asp 只公开 3 个对象(响应、服务器、请求),而且它们都没有像 jQuery 使用的那样提供“dom 构建工具”。时间。我们怎么可能创建一个空白文档对象?

编辑:我必须同意你的观点,这绝对不是一个好主意。让我解释一下为什么我们需要它。

我实际上正在将各种 JSON 提要转换为复杂的,有时是 HTML 中的嵌套报告。客户端它工作得非常好,即使是复杂的集合和长报告。

但是,我们的一些客户希望使用 EXCEL 等工具访问“格式化”报告(使用没有任何 javascript 的 webquery)。所以在这种特殊情况下,我需要能够响应。编写 jQuery 工作的 .html() 内容。

【问题讨论】:

    标签: jquery dom asp-classic server-side


    【解决方案1】:

    在这种情况下,我使用 XML DOM 作为浏览器中的 HTML DOM 的代理。

    jQuery 可以操作 XML DOM,但是 jQuery 期望窗口出现在其上下文中。有可能欺骗 jQuery(或对其进行调整)以便它可以在服务器端工作,但它可能非常脆弱。

    就我个人而言,我只是使用了一个小型辅助函数库,它可以让操作 XML DOM 变得不那么痛苦,例如:-

    function XmlWrapper(elem) { this.element = elem; }
    XmlWrapper.prototype.addChild = function(name) {
        var elem = this.element.ownerDocument.createElement(name);
        return new XmlWrapper(this.element.appendChild(elem));
    }
    

    现在你的页面代码可以做:-

    var dom = Server.CreateObject("MSXML2.DOMDocument.3.0");
    dom.loadXML("<html />");
    var html = XmlWapper(dom.documentElement);
    
    var head = html.addChild("head");
    var body = html.addChild("body");
    
    var tHead = body.addChild("table").addChild("tHead");
    

    当您创建“原始”操作 DOM 的代码时,您会看到可以重构为 XmlWrapper 类的方法的模式。

    【讨论】:

      【解决方案2】:

      是的,这是可能的。不,它根本不会很快,我认为没有任何理由这样做,因为 jQuery 经常用于做只与客户端相关的事情。

      【讨论】:

        【解决方案3】:

        我不得不问你这样做的可能原因是什么?如果您想在服务器端构建 DOM 文档而不是编写 HTML 输出,则更有可能是某种可以与 ASP 交互的 XML 库。 jQuery 用于客户端的东西,而服务器端的 Javascript 存在,它不是一个常见的用例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-20
          • 1970-01-01
          相关资源
          最近更新 更多