1

これが私の質問です。

古典的なASPがサーバー側のJavaScriptをサポートしていることを知っていれば、「サーバー側のHTML」を生成して、Response.write $(page).html()のようにクライアントに送信できるようになることは可能でしょうか?

もちろん、複雑な構造を解析して操作するのは簡単なので、jQuery を使用してそれを行うのは素晴らしいことです。

私がこれを行うのを妨げる唯一の問題は、古典的なaspが3つのオブジェクト(応答、サーバー、要求)しか公開せず、jQueryが常に使用するような「dom構築機能」を提供しないことです。空白のドキュメント オブジェクトを作成するにはどうすればよいでしょうか。

編集:パフォーマンスに関しては、それは間違いなく良い考えではないことに同意する必要があります。なぜそれが必要なのか説明しましょう。

私は実際に、さまざまな JSON フィードを HTML の複雑な、時にはネストされたレポートに変換しています。複雑なセットや長いレポートでも、クライアント側は非常にうまく機能します。

ただし、一部のクライアントは、EXCEL などのツールを使用して「フォーマット済み」レポートにアクセスしたいと考えています (javascript が不足している webquery を使用)。したがって、その特定のケースでは、jQuery の作業となる .html() コンテンツを response.write できる必要があります。

4

3 に答える 3

2

私はそのような状況で、ブラウザーにある HTML DOM の代理として XML 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 クラスのメソッドとしてリファクタリングできるパターンが表示されます。

于 2008-10-03T10:43:26.230 に答える
0

私はあなたがこれをするためにどんな考えられる理由があるか尋ねなければなりませんか?HTML出力を作成するのではなく、サーバー側でDOMドキュメントを作成する場合は、ASPにインターフェイスできる何らかのXMLライブラリが存在する可能性が高くなります。jQueryはクライアント側のものですが、サーバー側のJavascriptは一般的なユースケースではありません。

于 2008-10-01T21:15:57.250 に答える
0

はい、可能です。いいえ、高速ではありません。jQueryはクライアントにのみ関連することを行うためによく使用されるため、これを行う理由はわかりません。

于 2008-10-01T18:47:30.960 に答える