2010-08-12 6 views
3

MVC 2와 Ajax를 처음부터 사용해 보았습니다. Ajax가 웹 페이지를 매우 빠르게 변경한다는 인상하에 내가 잘못하고 있는지 궁금합니다.ASP.NET MVC와 Ajax가 느린가요?

<div> 
    <%: Ajax.ActionLink("Dita", "AjaxView", new AjaxOptions { UpdateTargetId = "myDiv" })%> 
</div> 
<div id="myDiv"> 
    Change this text</div> 

그리고 작업 방법 :

public ActionResult AjaxView(string id) 
{ 
    return Content("Text changed!"); ; 

} 

이 오히려 짧은 간단한 텍스트 문자열이며, 여전히 텍스트하기 전에 약 1 ~ 2 초가 소요 내가 가진 예는 아약스 actionlink 함께 나타나다. 어쩌면 아약스는 내가 생각한 것을하지 않아도 될지 모르겠지만 텍스트 및 이미지의 즉석 미리보기에 롤오버 기능과 같은 기능을 사용할 수 있다고 생각했다. (나는 actionlink를 호출하도록 설정할 수 있는지 궁금해했다. 마우스 오버시 동작 방법을 클릭 하시겠습니까?)

정상적으로 느린가 아니면 뭔가 빠졌는가?

+0

매우 빠른 로컬이어야합니다. Visual Studio 또는 IIS를 통해 웹 사이트를 실행하고 있습니까? 첫 페이지가로드되는 데 얼마나 걸립니까? – Ryan

+0

테스트 용으로 FF 또는 Chrome을 사용하고 있습니까? – Yakimych

+0

Visual Studio localhost에서 테스트를 실행하고 있습니다. 페이지를로드하는 데 약 3-5 초가 걸립니다. 그리고 액션 링크는 약 1-2 초가 걸립니다. 그래도 조금 다릅니다. 때로는 더 빠릅니다. 그런데 다시 느려집니다 ... Chrome을 테스트 브라우저로 사용하고 있습니다. – Anders

답변

3

를 호출하는 - 당신의 서버는 따라서 자원 소비, 뭔가 다른 일을 사용 중일 수 있습니다 . 수정 여기에 설명 :

Firefox and Chrome slow on localhost; known fix doesn't work on Windows 7

여기

https://superuser.com/questions/174715/is-there-a-way-to-disable-ipv6-in-googles-chrome

내가 더 빨리 작동하는지 먼저 확인하는 IE와 오페라에 시도 할 것입니다.

참고 : 실제로 문제가 발생하는 경우 AJAX과 관련이 없습니다.

+0

고마워! 그 대답을 나타납니다. 나는 IE와 함께 노력했고 완벽하게, 즉시 새로 고침, 상관없이 간단한 textstring 또는 부분보기 (BTW, Ajax에 대해 배울 때, 그것은 바디 태그없이 페이지를로드하는 것 같습니다로드 등)에 대한 제안 것 같다 html의 조각, 그러나 이것에 대한 부분적인보기를 사용하는 것에 대해 아무것도 읽지 않았다면 이것이 이상적이지 않습니까? 시작하는 데 필요한 몸체 등이 없습니다 ... 어쨌든이 문제를 해결해 주셔서 다시 한번 감사드립니다. ! – Anders

0

나는 당신이 약간 잘못 이해했다고 생각한다. 웹 애플리케이션을 더 빠르게 만들어 줄 AJAX에 대해서는 아무것도 없다. AJAX가하는 일은 전체 페이지를 다시로드하는 대신 필요한 정보 만로드하는 것입니다. 이렇게하면 전체 페이지를 새로 고치지 않고도보고있는 페이지를 미세하게 변경할 수 있습니다.

요점은 - 당신이 AjaxView를 호출 할 때 여전히 당신이 무엇을하든 시간이 걸리는 서버에 다시 콜을해야한다는 것입니다. 이 행동이 느린 이유는 다른 요인에 의존 할 수 있습니다. -, 당신은 단지 어셈블리를 구축 느린 그것은 localhost와 FF와 크롬의 IPv6 DNS 확인 문제 일 수 있습니다 주위에 처음

+0

그래,하지만 아약스 주변의 모든 과대 광고, "슬로건"은 서버에 작은 객체를 다시 호출해야한다는 것을 알고 있지만 "서버로의 느린 포스트 백을 더 이상 기다리지 않는"것으로 보인다. 그러나 나는 그 점이 너무 빨라서 거의 눈에 띄지 않을 것이라고 생각했다. 그래서 아약스가 그렇게 할 수 없다면, 즉석의 텍스트 미리보기를 위해 이것을 할 수있는 또 다른 방법이 있습니까? jquery가 더 나은 방법을 제공할까요, 아니면 똑같은 것이겠습니까 (텍스트는 어쨌든 서버에서 왔습니다 ...)? (왼쪽 메뉴) – Anders

+0

처음에 페이지를로드 할 때 정보를 미리로드하여 정보가 이미 포함되도록 할 수 있습니다. 뷰어로 보내지는 HTML.이렇게하면 jQuery와 같은 Javascript 라이브러리를 사용하여 HTML을 쉽게 표시/숨기기/조작 할 수 있습니다. Microsoft Ajax와 Jquery는 모두 Javascript를 사용합니다. 그들은 모든 사람들이 깨끗하고 신뢰성있는 자바 스크립트를 작성하기가 더 쉬워 진 라이브러리 일뿐입니다. 내가 너라면 jQuery를 살펴볼 것이다. 웹 응용 프로그램을 만든 방식이 바뀌 었습니다. 시작하기가 그리 어렵지 않습니다! –

+0

그래, 문제는 위와 같이 브라우저 지원이었고 정말 빠른 것이므로 콘텐츠가 서버에 있어도 문제가없는 것으로 보입니다. 어쨌든 고마워, 그리고 jquery로 조사 시작, 그럼에도 불구하고 정말 매력적 보인다! – Anders

관련 문제