2009-07-22 2 views
2

PHP가 백그라운드에서 어떻게 작동하는지 궁금합니다.모든 AJAX 호출에서 PHP 파일이 인스턴스화됩니까?

나는 배열을 생성하고 이름을 채우는 PHP를 가지고있다.

$names = Array("Anna", "Jackson" .... "Owen"); 

그런 다음 모든 키 누르기 값을 값이 포함 된 이름을 확인하는 입력 필드가 있습니다.

모든 호출마다 배열이 만들어 집니까? 또한 루프를 수행하기 전에 배열을 정렬하므로 출력은 알파벳순으로 표시됩니다. 이것이 AJAX 호출에서 시간이 걸릴 것입니까?

대답이 '예'인 경우,이를 해결할 수있는 방법이 있습니까? 그래서 모든 호출에서 배열을 반복 할 준비가 되었습니까?

답변

6

AJAX 요청과 "일반적인"http 요청에는 차이가 없습니다. 그래서 네, 각각의 요청에 대해 새로운 PHP 인스턴스가 생성 될 것입니다. 스크립트를 구문 분석하는 데 걸리는 시간이 문제라면 APC과 같은 것을 사용할 수 있습니다.
그 배열은 런타임에 생성되고이 작업에 걸리는 시간이 문제가 저장하고 공유 요청 사이의 값을 뭔가 memcache

1

처럼 지금까지 내가 다음 알고이 같은 배열 매번 만들어야합니다 수 있습니다 경우 AJAX는 입력 키를 누를 때마다 새로운 서버 요청을합니다. 각 서버 요청은 스크립트를 작성하는 경우 배열을 작성합니다.

더 좋은 방법은 데이터베이스를 사용하여 이름을 저장하는 것입니다.

1

예 PHP 스크립트를 실행할 때마다 생성되고 파괴됩니다.

이 데이터를 어딘가에 보관하는 것이 문제가 될 수 있지만 (예 : 세션 또는 데이터베이스) 어쨌든이 작업을 수행해야하는 성능 문제가 실제로 발생하는지 여부를 묻습니다. ?

+0

그것은 사실상 가상의 질문입니다. 일부 AJAX 호출로 놀고 있었는데 각 입력 키 누르기에 대한 배열을 만드는 것이 실제로 효율적이지 않다는 것을 깨달았습니다. – peirix

2

배열을 만드는 데 사용하는 방법에 관계없이 코드에있는 경우 데이터베이스, 텍스트 파일 또는 기타 소스에서 추출한 경우 웹 서버에서 http 요청을 받으면 Ajax이든 아니든) PHP 스크립트의 실행을 시작하고 메모리 공간을 생성하며 배열이 만들어집니다. PHP 스크립트의 엔트리 포인트는 오직 하나 뿐이며, http rquest가이를 가리킬 때 첫 번째 라인이됩니다.(다른 스크립트가 포함되어 있거나, 이는 동일)

1

(이 질문에 대한 직접적인 대답은 아니지만, 당신이 공연에 대해 우려하는 경우는, 도움이 될 수 있습니다)

당신이 말 :

를 이어서

제가 이때 마다 누르기에 PHP

을 값을 전송하는 입력 필드를 가지고, 그것은 COM이고 mon 키를 눌러 서버에 요청을 보내지 않으려면 일반적으로 몇 밀리 초 (100ms에서 150ms 사이)를 기다린 후 해당 간격에 다른 키 누르기가 없는지 확인합니다 :

  • 사용자 유형에 여러 개의 키, 당신이 기다리는 시간보다 더 빨리 그는 일반적으로 유형, 그래서, 당신은 마지막 키 누름에 대한 요구, 그리고 모든 키를 누를
    • 사용자 유형의 경우를 보내 4 글자, 당신은 4 대신 1 요청 만합니다; 어떤 서버의 건강에 좋은 :-)
  • 사용자를위한 시간 : 100ms 더하기 서버에 가서 스크립트를 실행하고 서버에서 돌아 오는 시간을 기다리는 시간이 거의 같습니다. 먼저 100ms를 기다리지 않고 동일; 그래서 사용자에게 좋지 않다.

사이드 노트로 : 데이터 목록이 너무 크지 않다면 (20 개의 이름은 틀림없이 OK, 100 개의 이름은 아마도 괜찮을 것이고, 1000은 너무 많을 수도있다), 당신은 저장할 수있다. 직접 자바 스크립트 배열로 사용하고 Ajax 요청은하지 않습니다. 가장 빠른 방법 (클라이언트 - 서버 호출 없음)이며 서버를 전혀로드하지 않습니다.

+0

예, 사용자가 아무것도 입력 할 때마다 재설정되는 약 200ms로 설정된 시간 제한을 사용하고 있습니다. 그러나 그것은 내가 새로운 경험이기 때문에 PHP 성능에 대해 더 많은 질문이었습니다. 좋은 답변, 여전히 (+1 : – peirix

+0

OK :-) 감사합니다! –

관련 문제