2009-08-06 2 views
0

웹 응용 프로그램을 좀 더 현대적인 느낌의 AJAX 웹 2.0 거래로 마이그레이션하는 임무가 주어졌습니다. 현재 애플리케이션은 PHP를 사용하여 데이터베이스에서 데이터를 가져 와서 사용자에게 양식을 제시 한 다음 해당 양식 제출을 기반으로 데이터베이스를 업데이트합니다. 프레임은 지속적인 메인 네비게이션 메뉴와 실제 컨텐츠 영역을 가지고 있습니다.POST 양식에서 CSS로 마이 그 레이션

각 PHP 스크립트는 기본적으로 $ _POST 정보를 찾습니다. 없는 경우 사용자 데이터베이스 데이터를 표시하고, 그렇지 않으면 데이터를 업데이트 (적절한 데이터 제공) 한 다음 사용자에게 결과를 표시합니다. 하위 집합을 표시하는 간단한 탐색 내비게이션이 있습니다.

div 내부에서 콘텐츠가 변경되어 CSS 레이아웃으로 AJAX 사이트로 이전하려면 전체 페이지가 새로 고쳐지기 때문에 POST 사용이 배제됩니다. 맞습니까? (내가 할 수는 있겠지만, 낭비가 될 것입니다. 작은 부분 만 변경하면 전체 페이지를 다시 생성 할 필요가 없습니다.) 기본적으로 전체 작업은 Javascript를 사용하여 양식 정보를 읽고, XML HTTP 요청하고 결과를 표시 하시겠습니까? 그것은 자바 스크립트에서 기존 php funcitonality를 다시 작성하는 것 같아서 피하기를 희망합니다.

작업을 올바르게 이해 했습니까? 나를 도울 수있는 라이브러리 또는 프레임 워크가 있습니까?

답변

1

여기에는 두 가지 문제가 있습니다.이 문제는 여러면에서 관련이 있지만 간단히 정리해서는 안됩니다. 레이아웃 형태 (마음에 다른 유지하면서 이렇게 같이)

내가 따로 작업을 것 제출 된 페이지의

  • 만로드 부분

    에 대한

    • CSS 먼저 Ajax를 도입하지 않고 웹 표준 기반 페이지로 이동하는 것이 중요합니다.

      전체 페이지를 다시로드 할 때 약간의 비효율적 인 부분이 있지만이 방법은 간단하고 비교적 쉽게 디버깅 할 수 있습니다.

      이렇게하는 동안 디스플레이와 비즈니스 논리를 분리하는 것이 좋습니다. MVC 패턴은 이에 적합합니다.

      CakePHP은 도움이 될만한 MVC 프레임 워크입니다.

      일단 시스템이 작동하면 Ajax 사용에 대해 걱정할 수 있습니다. progressive enhancement의 원칙을 따르십시오.

      표시 로직을 비즈니스 로직과 분리했다면 관심있는 데이터를 제공하는 다른보기 (예 : JSON)로 기존 코드를 재사용하는 것이 상대적으로 간단하다는 것을 알 수 있습니다.

      관심있는 페이지의 부분을 업데이트하려면이 작업을 처리 할 수 ​​있습니다.

      YUIjQuery을 포함 할 수있는 프레임 워크.

      나는 작년에 simple example이라고 썼습니다. main script의 51 행은 브라우저에서 직접 처리하기 위해 HTML template 또는 processing with JS의 JSON 모듈로 데이터를 펌핑합니다. 사용자가 보낸 매개 변수를보고이를 기반으로하는 DB에서 데이터를 추출하는 코드가 공유되기 때문에 많은 노력이 필요하지 않습니다.

  • +0

    좋아요, 당신이 여기서 말하는 것을 보았습니다. 먼저 레이아웃을 css로 마이그레이션하고 일반 POST 양식을 유지합니다. POST로 전체 페이지를 다시로드하는 것에 대해 걱정하지 마십시오. 전체 레이아웃이 마이그레이션되면 각 양식을 하나씩 AJAX 요청으로 마이그레이션하기 시작하십시오. 그게 옳은가? – user151841

    관련 문제