문제

저는 회사 애플리케이션에서 상당히 Ajax 무거운 기능을 시작하려고합니다. 내가해야 할 일은 사용자가 페이지에있는 몇 분마다 Ajax 콜백을 만드는 것입니다.

  • 콜백 전, 후 또는 도중에 DOM 업데이트를 수행 할 필요가 없습니다.
  • 항상 요청과 함께 전송되어야하는 사이트 쿠키와 ID 값만 있으면 페이지 정보가 필요하지 않습니다.

    제가 궁금한 점은 페이지의 나머지 정보를 다시 게시하지 않고 ASP.NET 페이지에 JavaScript Ajax 콜백을 만드는 깔끔하고 간단한 방법이 있는지 여부입니다. 가능하면이 작업을하지 않아도됩니다.

    저는 페이지에서 하나의 메소드 만 호출 할 수 있기를 원합니다.

    또한 ASP.NET 2.0으로 제한되어 있으므로 2.0 프레임 워크에 ASP AJAX 확장을 사용할 수 있지만 새로운 3.5 프레임 워크 ASP AJAX 기능을 사용할 수 없습니다.

    업데이트
    DanP 의 답변을 수락하기로 결정했습니다. 내가 찾고있는 것이 정확히 될 수 있습니다. 우리 사이트는 이미 몇 가지 작업에 jQuery를 사용하고 있으므로 필자의 경험상 ASP의 AJAX 프레임 워크가 수행하는 것보다 훨씬 더 잘 수행되는 것 같아서 요청을 만드는 데 jQuery를 사용할 것입니다.

    IHttpHandler로 데이터를 전송하는 가장 좋은 방법은 무엇이라고 생각하십니까? 쿼리 문자열에 변수를 추가해야합니까, 아니면 보내야하는 데이터를 POST해야합니까?

    내가 보내야한다고 생각하는 유일한 것은 단일 ID이지만 ID를 보내고 IHttpHandler가 처리하도록하는 것이 가장 좋은 방법을 결정할 수 없습니다. 기본적인 컴퓨터 기술을 가진 사람이 실수로 또는 의도적으로 페이지에 직접 액세스하거나 요청을 반복하는 것을 방지하는 솔루션을 찾고 싶습니다. 이것이 가능합니까?

도움이 되었습니까?

해결책

빈 페이지를 생성하지 않으려면 IHttpHandler (ashx) 파일을 호출 할 수 있습니다. 라코 디스

다른 팁

<인용구>

IHttpHandler로 데이터를 전송하는 가장 좋은 방법은 무엇이라고 생각하십니까? 쿼리 문자열에 변수를 추가해야합니까? 아니면 보내야하는 데이터를 POST해야합니까? 내가 보내야 할 유일한 것은 단일 ID이지만 ID를 보내고 IHttpHandler가 처리하도록하는 것이 가장 좋은 방법을 결정할 수 없습니다. 기본적인 컴퓨터 기술을 가진 사람이 실수로 또는 의도적으로 페이지에 직접 액세스하는 것을 방지하는 솔루션을 찾고 싶습니다.

콜백이 클라이언트 코드에 묻혀 있다는 점을 고려할 때 쿼리 문자열 또는 POST 요청을 얻으려면 동일한 결정을 가진 사람이 필요합니다. IE, 방화범이 있으면 똑같이 망쳤습니다.

그러므로이 경우 가장 쉬운 일을하십시오 (힌트 : 쿼리 문자열을 사용하겠습니다).

반복 요청 / 직접 액세스를 처리하기 위해 각 요청과 함께 전송되는 키를 생성합니다. 아마도 현재 시간의 해시 (Fuzzy, 네트워크 지연으로 인해 몇 초가 아닌 몇 분으로 줄어들 것입니다) + 클라이언트 IP.

그런 다음 HTTPHandler에서 동일한 해시를 수행하고 일치하는 경우에만 실행합니다.

ASP.NET AJAX에만 국한된 것이 아니라 jQuery, YUI 등과 같은 타사 라이브러리를 사용하여 동일한 작업을 수행 할 수 있습니다.그런 다음 쿠키를 포함하는 헤더를 반환해야하는 사이트의 빈 페이지에 요청을 할 수 있습니다.

내 투표는 HTTPHandler 제안과 함께 있습니다.나는 이것을 자주 사용합니다.페이지 클래스의 인스턴스를 호출하지 않기 때문에 매우 가볍습니다.

모든 ASP.NET AJAX 프레임 워크 트릭은 실제로 호출 당 백엔드에서 전체 페이지를 인스턴스화하고 생성하므로 엄청난 리소스를 소모합니다.

그러므로 제 전형적인 스타일의 XmlHttpRequest를 HttpHandler로 되돌립니다.

ASP.NET 2.0 만 사용하고 있으므로 .ashx 파일을 생성하는 AjaxPro 를 권장합니다..당신이해야 할 일은 AjaxPro.dll을 웹 사이트로 가져 오는 것입니다.저는 AjaxPro 로 전체 애플리케이션을 개발했으며 매우 잘 작동한다는 것을 알았습니다.직렬화를 사용하여 개체를 앞뒤로 전달합니다.

이것은 단순히 사용하는 방법에 대한 샘플 일뿐입니다. 라코 디스

JavaScript를 통해 호출하는 것은 간단합니다. 라코 디스

수정

또한 추가해야합니다.

구성으로.AjaxPro는 APS.NET Ajax와 나란히 잘 작동하며 클래스가 [Serializable]로 표시된 경우 C # 객체를 Client에서 Sever로 전달할 수 있습니다.

다른 관점을 제공하기 위해 기본 페이지에서 PageMethod를 사용할 수도 있습니다.Dave Ward는 설명 합니다.기본적으로 Dave의 게시물에 설명 된대로 jQuery ajax 게시물을 사용하여 메소드를 호출합니다. 라코 디스

Asp.Net Ajax 확장이 전혀 필요하지 않습니다.

asp.net ajax 라이브러리에 내장 된 WebMethods를 사용할 수도 있습니다.페이지의 코드 숨김에 정적 메서드를 만들고 Ajax에서 호출하기 만하면됩니다.

그 방법에 대한 매우 기본적인 예가 있습니다. 여기

웹 서비스 (.asmx)를 사용해야합니다.Microsoft의 ASP.NET AJAX를 사용하면 스텁을 자동 생성 할 수도 있습니다.

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