2013-02-28 3 views
1

현재 내 앱은 일련의 세션 변수를 채우는 global.asax의 Session_Start 메소드에서 API 호출을 수행합니다. 문제는 응용 프로그램을 처음로드하는 데 10 초 정도 걸린다는 것입니다.ASP.NET MVC 4 프리 로더

나는이 시간 동안 "로딩 중 ..."프리 로더를 넣고 싶지만, 어떻게 또는 어디에 넣을 지 잘 모르겠습니다.

+0

'Session_Start'에서 API 호출을하지 않는 것이 좋습니다. 어떤 종류의 API 호출을 사용합니까? 다른 곳으로 옮길 수 있습니까? – MartinHN

+0

확신 할 수 있지만 어디 있는지 모르겠습니다. 나는 ASP.NET이 처음이다. 사이트의 모든 페이지에서 세션 변수에 액세스 할 수 있어야합니다. – Derek

+0

호출 자체는'DataSet ds '를 채 웁니다. 그런 다음'DataTable dt = ds.Tables [0]'을 수행하고 foreach를 사용하여 많은 세션 변수를 추가합니다. – Derek

답변

0

사용자가 로그인하기 전에 Session_Start가 트리거됩니다.이 경우 응용 프로그램 범위에서 가져 오는 데이터가 동일 할 수 있습니까? 예인 경우 Application_Start로 코드를 이동하십시오. 그렇지 않으면 접근 방식을 변경하는 것이 좋습니다. 게으른로드 - 필요할 경우에만 fetchdata를 사용하거나 가능한 경우 캐시를 사용합니다.

+0

고마워요! 사이트 전체에서 유지하고자하는 변수를 저장하려면'@Session [ "VariableName"]'에 넣어야합니까? – Derek

+0

데이터가 uniqe이고 각 세션마다 다른 경우 YES 그렇지 않으면 NO입니다. 왜? 동일한 데이터를 각 세션에 복사 할 필요가 없습니다. 효과적이지는 않습니다. Global.asax에있는 데이터를 Appliacation 클래스의 속성 (public static MyObject MyProperty {get; set;})으로 저장할 수 있습니다. –

+0

감사합니다. 세션마다 고유하고 다른 데이터가 있으므로 세션 변수를 계속 사용하겠습니다. – Derek