2009-07-12 3 views
1

ASP.NET MVC, 부분보기 및 대화 상자를 사용하고 있습니다. 서버에 아약스 요청을하면 부분보기가 다시 표시됩니다. 그런 다음 경계 div를 다시 채우기 위해 $ ('# elementTag') .html (returnData)을 사용합니다. 그러나이 부분 뷰에는 나머지 부분 뷰 내용과 함께 양식 요소에 래핑 된 대화 상자에 대한 내부 작업이 포함되어 있습니다. 부분보기 내에 포함 된 javascript는 문서 준비가 완료되면 대화 상자를 설정합니다.jquery html 같은 양식의 배수 생성

나는이 설계 방법을 시작했다. 대화 내용을 부분 뷰와 함께 묶어서 함께 모으기 시작했다.

이제 대화 상자에 문제가있어서이 문제가 발생했습니다. 대화 상자를 표시하기 전에 대화 상자 양식 내에서 양식 요소를 초기화 할 수 있지만 사용자가 대화 상자에서 데이터를 저장하도록 요청하면 serializeArray를 사용하여 얻은 모든 요소가 비어 있습니다.

Firebug를 사용하여 대화 형식을 포함하는 부분보기를 요청할 때마다 같은 형식의 또 다른 형식 (즉, 분명히 메모리 누수가 있음)이 발생하는 것으로 나타났습니다. 내 html이 교체되고 스크립트가 복제되고 있다는 사실을 알고 있습니다.

그래서 나는이 모든 일을 잘못하고 있거나 여기에 문제가 있습니다. 모달 대화 상자를 사용하여 정보를 묻는 대화 상자에서 데이터를 직렬화하고 서버로 보냅니다.

가장 좋은 방법은 무엇입니까? 모든 대화 내용을 사이트 마스터와 모든 자바 스크립트에 단일 js 파일로 묶어야합니까, 아니면 모든 것을 바꿀 수있는 방법이 있습니까?

답변

0

나는 하나의 압축 된 gzip 서비스 된 파일에 모든 js를 넣었으므로 첫 페이지에로드되고 캐시됩니다.

깨끗한 스크립트 분리를 돕기 위해 내 스크립트를 application.pages 또는 controller.action에 네임 스페이스하는 경향이 있으며 내부에는 해당 페이지 (로드 탭, 설정 모달 대화 상자 등)에 필요한 기능을 설정하는 init 함수가 있습니다. 페이지가 아약스를 통해로드되거나 동일한 스크립트가 여전히 실행되는 경우 중요하지 않습니다. 이것은 설치하기는 쉽지 않았지만 배당금을 지불했습니다. Paul irish는 그의 블로그 게시물 here에서 비슷한 생각을 가지고 있습니다. 그것은 또한 당신을 도울지도 모른다.

0

답장을 보내 주셔서 감사합니다. 나는 자바 스크립트에 익숙하지 않은데, 새롭지는 않다. 아주 오래되고, 많은 습관과 함께 녹슬어서, 빠르게 습득 한 나쁜 습관이있다.

귀하의 회신이 내 문제를 해결하는 방법을 잘 모르는 것이지만 귀하의 답변이 아닌 내 짧은 회신 (무지)입니다.

아약스 패턴의 세계에서 자바 스크립트 패턴과 모범 사례를 아는 것은 이제 매우 중요하게되었습니다. 오래된 페이지 새로 고침 (예 : 휴지통을 비워 새 쓰레기를 버릴 수있는 공간)에 익숙합니다. 더 이상 나쁜 습관으로 벗어날 수는 없습니다.

귀하의 짧은 답변으로 새로운 시각으로 기본으로 돌아갈 수 있습니다.

관련 문제