문제

여기 내 질문이 있습니다.

Classic ASP가 서버 측 JavaScript를 지원하고 "Server Side HTML"을 생성하여 Client에 response.write $ (Page) .html ()를 보낼 수 있다는 것을 알고 가능합니까?

물론 jQuery를 사용하여 복잡한 구조를 구문 분석하고 조작하기가 쉽기 때문입니다.

내가 생각할 수있는 유일한 문제는 내가이 작업을 수행하지 못하게 할 수있는 유일한 문제는 클래식 ASP가 3 개의 객체 (응답, 서버, 요청) 만 노출되며 그 중 하나는 하나의 jQuery가 항상 사용하는 것처럼 "Dom Building Facilitiity"를 제공하지 않는다는 것입니다. 빈 문서 개체를 어떻게 만들 수 있습니까?

편집하다 : 나는 그것이 좋은 아이디어 성능이 현명하지 않다는 것에 동의해야합니다. 왜 우리가 그것을 필요로하는지 설명하겠습니다.

실제로 다양한 JSON 피드를 HTML에서 복잡하고 때로는 중첩 된 보고서로 변환하고 있습니다. 클라이언트 측은 복잡한 세트와 긴 보고서를 통해서도 실제로 잘 작동합니다.

그러나 일부 고객은 Excel과 같은 도구를 사용하여 "형식화 된"보고서에 액세스하려고합니다 (JavaScript가 고갈 된 WebQuery 사용). 따라서 특정 경우 jQuery 작업의 .html () 컨텐츠를 작성해야합니다.

도움이 되었습니까?

해결책

나는 그러한 상황에서 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");

RAW '에서 DOM을 조작하는 코드를 만들 때 XMLWRAPPER 클래스의 메소드로 인수 할 수있는 패턴을 볼 수 있습니다.

다른 팁

예, 가능합니다. 아니요, 전혀 빠르지 않을 것이며 jQuery가 종종 클라이언트와 관련된 일을하는 데 사용되기 때문에 어떤 이유도 보이지 않습니다.

이 작업을 수행 한 이유를 물어봐야합니까? HTML 출력을 작성하는 것과 반대로 DOM 문서 서버 측을 구축하려면 ASP와 인터페이스 할 수있는 XML 라이브러리 일 가능성이 높습니다. JQuery는 클라이언트 측 제품을위한 것이며 서버 측 JavaScript는 일반적인 사용 사례가 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top