这是我的问题,
是否有可能,知道经典的asp支持服务器端javascript,能够生成“服务器端HTML”发送给客户端之类的 Response.write $(page).html()
当然,使用jQuery来实现它会很棒,因为它很容易解析复杂的结构并对它们进行操作。
我能想到的唯一问题就是阻止我这样做,那就是经典的asp只暴露了3个对象(响应,服务器,请求),而且它们都没有提供“dom构建工具”,比如jQuery使用的所有时间。我们怎么可能创建一个空文档对象?
编辑:我必须同意你的观点,这绝对不是一个好主意。让我解释为什么我们需要它。
我实际上是将各种JSON提要转换为HTML中复杂的,有时是嵌套的报表。客户端它工作得很好,即使是复杂的设置和长报告。
但是,我们的一些客户希望使用像EXCEL这样的工具访问“格式化”报告(使用耗尽任何javascript的webquery)。所以在这种特殊情况下,我需要能够响应。编写jQuery工作的.html()内容。
答案 0 :(得分:2)
在这种情况下,我使用XML DOM作为浏览器中HTML DOM的代理。
jQuery可以操作XML DOM,但jQuery期望窗口存在于其上下文中。有可能欺骗jQuery(或调整它),以便它可以在服务器端工作,但它可能非常脆弱。
Personnally我只是使用一个辅助函数的小库,这使得操作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类的方法。
答案 1 :(得分:0)
是的,这是可能的。不,它根本不会很快,我没有看到任何理由这样做,因为jQuery通常用于做与客户端相关的事情。
答案 2 :(得分:0)
我不得不问你有什么理由这样做?如果你想构建一个DOM文档服务器端而不是编写HTML输出,那么更有可能是某种可以与ASP连接的XML库。 jQuery用于客户端,而服务器端Javascript不是常见的用例。