使用 jquery 和经典 asp 在服务器端生成 HTML 文档

generate HTML document server-side with jquery and classic asp

提问人:matdumsa 提问时间:10/2/2008 最后编辑:matdumsa 更新时间:12/10/2010 访问量:4191

问:

这是我的问题,

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

当然,使用 jQuery 来做到这一点会很棒,因为它很容易解析复杂的结构并操作它们。

我能想到的唯一会阻止我这样做的问题是经典的 asp 只公开了 3 个对象(response、server、request),并且它们都没有像 jQuery 一直使用的那个那样提供“dom 构建工具”。我们怎么可能创建一个空白文档对象?

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

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

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

jquery dom asp-classic 服务器端

评论


答:

0赞 Svante Svenson 10/2/2008 #1

是的,这是可能的。不,它根本不会很快,我看不出有任何理由这样做,因为 jQuery 通常用于执行仅与客户端相关的事情。

0赞 roryf 10/2/2008 #2

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

2赞 AnthonyWJones 10/3/2008 #3

在这种情况下,我使用 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 类方法的模式。