2017-11-28 20 views
0

나는 여행사/운영자의 일상 판매 및 운영을 다루는 CakePHP 2.x 앱을 가지고 있습니다.CakePHP 2.x 성능 - 컨트롤러가 데이터 작업을 끝내기 전에 사용자에게보기를 가져올 수 있습니까?

고객의 클라이언트 정보, 상담원의 상담원 정보, 승객의 승객 정보 (고객과 항상 같지는 않음), Payments의 지불 정보, 둘러보기 정보가 필요하기 때문에 판매 모델은 거의 모든 다른 모델과 상호 작용합니다 Tours의 항공편 정보, 항공편의 항공편 정보 등

기본적으로 영업 사원이 특정 판매로 이동하면 다른 모델의 많은 정보를 보여줄 수있는 화면이 필요합니다.

이로 인해 화면이 느려지고로드 속도가 느려집니다.

캐시를 사용하지 않으려 고합니다. 부츠 - 온 - 더 - 지상 유형의 대행사입니다. 즉, 판매가 아닌 실제 운영 자체를 의미합니다. 이 환경에서 정보는 항상 최신 상태 여야합니다.

그래서, 질문은 : 컨트롤러가 데이터의 모든 조각을 처리 완료되기 전에 사용자에게보기를 가져 오는 저를위한 방법은

있습니까?

처럼 :

<?php 

class SalesController extends AppController { 

    public function show($id) { 


    // Get easy/quick data 
    // Take user to the View 


    // Get the more time consuming data 
    // Feed it to the View as it becomes ready 


    } 

} 

난 그냥 단순한 데이터 페이지를 호출 한 후 더 복잡한 데이터가 일부 Ajax와 자바 스크립트로로드 후에 와서해야한다 생각하지만, 그입니다 봤는데 최고의 프레임 워크 사용법?

평균 판매 화면에는 현재 완전히로드되기까지 약 10000 ms가 걸립니다. 그 시간의 6000ms 이상은 유휴 프레임입니다. 그게 내 컨트롤러가 백그라운드에서 일한다는 것을 의미하지, 그렇지?

답변

1

" 컨트롤러는 데이터를 반향해서는 안됩니다."규칙을 위반하지 않으면 불가능합니다. 테스트 환경에서 반환되지 않은 데이터, 전송되지 않은 헤더, 데이터와 같은 모든 종류의 문제가 발생할 수 있습니다.

당신이하고있는 일을 알고 있고 그 의미를 알고 있다면 아마 빠져 나갈 수 있지만 AJAX 솔루션은 가장 안전한 대안 일 가능성이 높습니다. 나는 아무것도 할 것이다 어떤 경우

정확히과 시간이 소요되는 이유를 정확히 를 식별하고, 문제의 뿌리에서 일을 빠르게 할 수있는 방법이 있는지 파악하기 전에!

+0

나는 어디서 왜 그 이유를 안다고 생각한다. 패키지는 기본적으로 모든 항공편, 모든 둘러보기, 모든 호텔 등입니다. 다른 모델에 저장되기 때문에 데이터는 표준이 아니므로 컨트롤러는 반환 된 각 관련 레코드로 이동하여 2 가지 작업을 수행합니다 : 1. 최종 배열을 연대순으로 배열 할 수 있도록 날짜와 시간을 꺼냅니다. 2. 사용자에게 표시되는 설명을 작성하기 위해 각 유형에서 설명적인 것으로 간주 될 것을 끌어 내십시오. – vivipoit