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

Posted

技术标签:

【中文标题】使用 jquery 和经典 asp 在服务器端生成 HTML 文档【英文标题】:generate HTML document server-side with jquery and classic asp 【发布时间】: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() 内容。

【问题讨论】:

【参考方案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 存在,它不是一个常见的用例。

【讨论】:

以上是关于使用 jquery 和经典 asp 在服务器端生成 HTML 文档的主要内容,如果未能解决你的问题,请参考以下文章

经典asp,jquery和Ajax最可靠的框架

asp页面从数据库查询结果后 怎么返回为json格式

如何使用 C#、ASP.NET、SQL Server 端处理实现 jQuery DataTables 插件?

获取错误(生成 XML 文档时出错。)在 asp.net 的 extjs 中从服务器端获取数据

通过 jQuery 调用 ASP.NET 服务器端方法

ASP.NET WebAPI和带有大型数据集的jQuery(json)