2017-04-26 19 views
0

패키지 웹 사이트에 ASP.NET MVC 5 및 EF5 패키지 패키지가 포함 된 여행 웹 사이트가 있습니다. 각 패키지 제품에는 패키지의 각 날에 대해 정의 된 여러 세트의 호텔 및 항공편이 있습니다.도움말의 고성능 UI 접근 방법 여러 호텔 및 항공편 및 기타 제품이 포함 된 여행 웹 사이트 패키지 제품 검색

현재 사용자가 내 애플리케이션으로 특정 패키지 가격을 검색 할 때 여러 호텔 및 항공편 공급 업체의 웹 서비스를 호출하여 요금을 받고 공급자로부터 모든 요금을 받고 나서 총 패키지 가격을 계산합니다.

문제점 : 각 비행 및 각 호텔에 대한 공급 업체 웹 서비스 패키지에서 추가 된 모든 제품에 대한 가격을 받고 세부 정보로 UI를 업데이트 할 때까지 기다리는 동안 내 사이트 성능이 너무 느립니다.

저는 SignalR을 사용하여 호텔/비행기 요금을 받고 각도를 사용하여 가장 빨리 반환 된 응답을 표시하는 UI를 업데이트 할 수 있다고 생각합니다. 한 번, 나는 모든 가격을 얻고 총 패키지 가격을 계산할 것입니다.

이 경우 고성능 (25 초 미만)을 얻으려면 따라야하는 접근 방법이 필요합니다.

감사합니다,

비벡

+0

SignalR의 사용 사례에 대해 더 자세히 설명해 주실 수 있습니까? 내가 바른 순간을 이해한다면 그것은 느린 것입니다. 왜냐하면 외부 서비스로부터의 응답을 기다리고 나서 모든 약속이 해결되면 보여줄 뿐이 기 때문입니다. 그게 맞습니까? 아니면 더 많은 가격을 얻 자마자 서비스 결과를 얻은 다음 UI를 업데이트하면 보여줄 수 있습니까? –

+0

webservces에서 모든 결과를 얻은 후 마침내 업데이트합니다. 아직 SignalR을 구현하지 않았으므로 UI의 실시간 업데이트가 현재 완료되지 않았습니다. 현재 정상적인 apporach와 나는 작업을 사용하여 호텔 및 항공편의 웹 서비스를 호출하여 멀티 스레딩으로 결과를 얻습니다. @FarrukhSubhani – User3250

답변

0
회신 외부 서비스에 의존하고 가격이나 가용성 또는 평가로 최고의 보여 이러한 서비스의 대부분의 지역에서 사용이 방법에

봐 :

  1. 테이크 사용자 검색 매개 변수를 사용하고 서버 또는 클라이언트 측에서 외부 공급자를 위해 준비하려면 형식을 지정해야 할 수 있습니다.
  2. SignalR 허브를 사용하여 위의 매개 변수를 서버로 보낼 수 있으며 이제 허브는 서버가 응답하기를 기다리고 간단한 콜백 (addToResults) 기능을 실행할 수 있습니다.
  3. 서버에서 결과를 가져 오는 기존 방법을 사용하고 다른 서비스로 병렬 호출을 실행하고있을 수 있습니다. 호출이 결과를 반환하면 간단히 결과를 전달한 허브에서 함수를 호출 할 수 있습니다. 결과를 표준 형식으로 형식화해야 할 수 있습니다.
  4. 클라이언트 쪽에서 허브는 addToResults 함수가 트리거되어야 함을 알게되고 얻은 결과를 UI에 추가합니다. 각도 또는 jQuery 또는 기타를 사용하여 UI에 최신 결과를 채우거나 정렬 할 수 있습니다.
  5. 이 기간 동안 허브에서 다른 기능을 사용하여 UI를 업데이트 할 수 있습니다. 예를 들어 사용중인 총 서비스 수, 많은 작업이 완료되었으며 얼마나 많은 사용자가 기다려야하는지 알려줍니다.

이상적인 대기 시간은 서버에서 보내고받는 메타 데이터의 대부분과 시간이 걸리는 서비스로 축소되어야하지만 현재 수행중인 작업보다 상당히 개선 될 것입니다.

signalR을 사용하지 않고 x 값을 확인해야 할 곳을 찾을 수 있으며 서버에서 각 함수에 대한 결과를 제공하는 ajax 호출을 서버에서 수행 할 수 있습니다. 모든 서비스에서 결과를 얻으면 단순히 결과에 추가하고 계속 수행하십시오. 또한 첫 번째 아약스 호출이 반환되는 즉시 시간이 단축되고 결과가 표시되기 시작하고 나머지 수를 추적 할 수도 있습니다.

대부분의 경우 속도가 외부 서비스 응답으로 제한되므로 빠른 서비스에서 사용자 응답을 표시하면 속도가 빨라집니다. 그러나 사용자가 최저 가격을 제공하는 최고 등급 회사를 찾고 마지막으로 반환됩니다. 대기 시간은 가장 긴 호출에 걸리는 대기 일 뿐이며 모든 호출의 대기 누적이 아닙니다.

+0

먼저이 방법을 시도해 보겠습니다. "x 값의 서비스를 쿼리해야한다는 것을 이미 알고 있으므로 서버에서 각 함수에 대한 결과를 제공하는 다른 함수에 ajax 호출을 간단하게 수행 할 수 있습니다." 모든 Ajax 호출이 완료된 후 서버 함수에 대한 또 다른 Ajax 호출을 수행하여 모든 제품 요율이 반환되는지 여부를 확인합니다. 고마워요! – User3250