Pregunta

Aquí está mi pregunta,

Sería posible, sabiendo que el asp clásico es compatible con javascript del lado del servidor, poder generar " lado del servidor HTML " para enviar al cliente como   Response.write $ (page) .html ()

Por supuesto, sería genial usar jQuery para hacerlo porque es fácil analizar estructuras complicadas y manipularlas.

El único problema que se me ocurre que me impediría hacer esto sería que asp clásico expone solo 3 objetos (respuesta, servidor, solicitud) y ninguno de ellos proporciona " instalaciones de construcción de dom " como la que jQuery usa todo el tiempo. ¿Cómo podríamos crear un objeto de documento en blanco?

Editar : estoy de acuerdo con usted en que definitivamente no es una buena idea el rendimiento. Déjame explicarte por qué lo necesitaríamos.

En realidad, estoy transformando varias fuentes JSON en informes complicados, a veces anidados en HTML. En el lado del cliente, funciona muy bien, incluso con un conjunto complicado y un informe largo.

Sin embargo, a algunos de nuestros clientes les gustaría acceder a " formateado " informe utilizando herramientas como EXCEL (utilizando webquery que están agotadas de cualquier javascript). Entonces, en ese caso particular, necesitaría poder responder.write el contenido .html () de lo que sería el trabajo de jQuery.

¿Fue útil?

Solución

En tales situaciones, uso un DOM XML como sustituto del DOM HTML que tendría en un navegador.

jQuery puede manipular un DOM XML sin embargo, jQuery espera que la ventana esté presente en su contexto. Es posible engañar a jQuery (o modificarlo) para que funcione en el lado del servidor, pero podría ser bastante frágil.

Personalmente, solo uso una pequeña biblioteca de funciones de ayuda que hacen que la manipulación de un DOM XML sea un poco menos dolorosa, por ejemplo, como: -

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));
}

Ahora el código de tu página puede hacer: -

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");

A medida que crees un código que manipule el DOM 'en bruto', verás patrones que puedes re-factorizar como métodos de la clase XmlWrapper.

Otros consejos

Sí, es posible. No, no sería rápido en absoluto y no veo ninguna razón para hacerlo, ya que jQuery se usa a menudo para hacer cosas que solo son relevantes para el cliente.

¿Tengo que preguntar qué posible razón tienes para hacer esto? Si desea crear un lado del servidor de documentos DOM en lugar de escribir una salida HTML, es más probable que sea una biblioteca XML de algún tipo que pueda interactuar con ASP. jQuery es para cosas del lado del cliente, mientras que Javascript del lado del servidor existe, no es un caso de uso común.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top