2012-07-05 7 views
3

저는 많은 클라이언트를 위해 동적으로 사용자 정의 된 PHP의 일반 앱을 개발 중입니다.세션에 개체를 저장하는 것이 좋습니다.

나는 클라이언트의 스타일과 환경 설정을로드하는 클래스 client을 가지고 있습니다.

내 질문은 : 그것은 세션에서 해당 객체를 저장하는 것이 좋습니다

인가? (나는 이것이 각 페이지에 객체를 생성하는 대신에 가장 좋은 해결책이라고 생각한다. 많은 mysql 쿼리가 필요하다. 변경되지 않는 무언가가 MySQL 쿼리를 반복적으로 호출하게된다면

답변

3

세션을 처리하는 동안 고려해야 할 몇 가지 사항이 있습니다.

  1. 세션에 다양한 큰 값을 저장하면 안됩니다. 환경 설정이 일반적으로 충분히 작기 때문에 이것이 문제가되지 않는다고 생각합니다.

  2. 개체를 세션에 저장할 때. 실시간 업데이트를 얻지 못할 수도 있습니다. 예를 들어 동일한 사용자가 두 개의 개별 브라우저 및/또는 기계를 사용하여 로그인하고 하나의 환경 설정을 수정한다고 가정 할 수 있습니다. 이 경우 다른 사용자에게는 업데이트 된 사용자 지정이 적용되지 않습니다. 그것의 큰 문제가 아니지만 귀하의 요구 사항에 따라 다릅니다.

여기에는 다른 문제가 없습니다. 실제로 세션에 작은 값을 저장하고 db 쿼리를 피하는 유효하고 좋은 솔루션입니다.

+0

클라이언트 정보는 변경되지 않으며 클라이언트 당 많은 데이터가 아닙니다. 고맙습니다! – Tony

0

다음 예, 그건 좋은 생각이다. (일반 및 기능)

MySQL의 쿼리입니다 메모리/CPU를 많이과 적은 작업, 그래서 당신이 할 일으키는의 PHP 페이지로드 속도에 영향을 미칠 수

반환 값이 계속 변경되면 더 좋을 것입니다. 이 아니지만 세션에서 사용할 수있는 값을 저장합니다.

+0

클라이언트 정보가 변경되지 않으며 클라이언트 당 많은 데이터가 아닙니다. 나는 다른 선택권에서 생각을 기울인다. 고맙습니다! – Tony

0

클라이언트가 브라우저를 닫을 때 세션이 종료 될 것이라고 생각합니다. 쿠키 (로드 된 클라이언트)에 저장하는 경우? 보안에 좋지 않습니다.

세션에 미니 데이터를 저장하면 (로드 된 서버) 서버에서 일부 메모리를 사용 중입니다. 고객이 많을 때 어떤 일이 발생합니까?

따라서 데이터베이스 연결은 각 페이지의 프로세스가 끝날 때 파괴되어야합니다. 걱정하지 마십시오.

관련 문제