2013-04-25 2 views
0

SQL 데이터베이스에서 동적으로로드되는 웹 사이트를 구축하고 있습니다. 이를 위해 모든 AJAX 및 Post 및 Get 요청을 처리하는 PHP 파일을 만들었습니다. 모든 페이지에는 php include이 몇 개 있습니다.AJAX로 긴 PHP 스크립트 요청

PHP는 아직 길지는 않지만 (250 줄), 결국 훨씬 길어질 수 있습니다. 모든 것은 <?php **** ?> 태그로 싸여 있으며 명확하고 체계적으로 switchcase으로 구성되어 있습니다. 그래서 매번 두 줄 만 있으면됩니다.

내 질문은 : 모든include 요청로드/파일, 아니면 그냥 해당 부분을 모든를 다운로드합니까? 다시 말하면 가상의 10,000 줄 스크립트가 브라우저의 속도를 늦추거나 서버의 응답 시간 만 느리게됩니까?

나는이 모든 것에 대해 우려하고 있습니다.

미리 감사드립니다.

추 신 : sql 요청을 통합하려는이 아이디어는 항상 Multititer Architecture을 고집하는 컴퓨터 엔지니어 친구로부터 온 것입니다.

+1

성능에 문제가 있으면 사용 가능한 무료 캐싱 메커니즘을 체크 아웃하십시오. OPCache, 파일 캐시, 세션 캐시 및 사용자 캐시에 Wincache를 사용합니다. 사용자 캐시는'key => value' 쌍을 사용하여 사용자 정의 출력을 캐싱 할 수있게합니다. 따라서 시간/CPU가 많이 소요되는 프로세스가있는 경우 서버가 모든 페이지로드를 계산할 필요가 없도록 시간 프레임에 상관없이 출력을 캐시하는 방법에 대해 생각하십시오. OPCache 용 Wincache/APC/Memcached를 사용하는 것만으로도 PHP 파일을 매번 비트 코드로 변환 할 필요가 없으므로 애플리케이션 속도가 향상됩니다. – Jasper

답변

2

include 파일을 사용하면 전체 파일 내용이 해당 시점에 스크립트에 삽입/실행됩니다. 포함에 무슨 일이 일어나고 있는지에 따라 응답에 필요하지 않은 파일을 포함하는 경우 응답 속도가 느려질 수 있습니다. http://us3.php.net/manual/en/function.include.php

+0

예, 일련의 스위치 케이스로만 구성되어 있으므로 코드의 일부만 실제로 실행됩니다. 재스퍼 (Jasper)가 말했듯이 모든 요청마다 PHP를 비트로 변환하는 것을 피하는 것이 좋을 것입니다 ... 그러나 모든 PHP는 스크립트 자체 ''이고 서버 측이기 때문에 브라우저에 실제로 삽입되어 있습니까? ? 따라서 브라우저 효율성이 아니라 오랫동안 서버 응답 만 확인하면됩니다. 그게 맞습니까? 답변 주셔서 대단히 감사합니다. – Nico

+1

PHP가 브라우저에 삽입되지 않았으므로 브라우저는 PHP가 생성 한 HTML 만 볼 수 있습니다. 두 번째 질문에 대해서는 그렇습니다. 긴 서버 응답을 보길 원할 것입니다. – Schleis

0

나는 좋은 해결책을 가지고 있습니다! 대신 난 그냥 해당 케이스의 이름을 가진 다른 PHP의 많은으로 PHP를 나눌 수있는 생각 switch case case case .... case case endswitch를 입력 변수 $option를 분석 O를

(그리고 이것은 내 자신의 질문이었다).

그래서 case('sports') 대신에 <?php include('some_folder/'.$option.'.php');?>을 사용하면 매번 호출 할 때마다 전체 파일을 이진 파일로 변환하지 않아도됩니다.

PHP이 서버에서 처리되기 때문에 포함 된 파일이 계속 올 것이며 400 개가 아닌 20 줄의 코드 만 처리하면됩니다.

감사합니다.