>php教程 >PHP开发 >PHP&JavaScript 제어 시리즈 클라이언트 데이터 저장

PHP&JavaScript 제어 시리즈 클라이언트 데이터 저장

高洛峰
高洛峰원래의
2016-11-25 09:47:051488검색

모든 프로그래머가 좋아하는 것 중 하나는 프로그램을 생성하는 프로그램을 작성하는 것입니다. 웹에서는 클라이언트(브라우저)와 서버라는 두 가지 개발 환경이 있습니다. HTTP 프로토콜의 정의에 따르면 클라이언트 측에서 실행될 수 있는 다른 언어를 사용하여 프로그램을 출력하는 프로그램을 서버 측에서 작성할 수 있습니다. 서버 프로그램을 작성하려면 (물론) PHP를 선택하고 클라이언트 프로그램을 작성하려면 JavaScript를 선택합시다. 이 기사에서는 이 조합을 사용하여 클라이언트에 데이터를 저장하고 서버와 브라우저 간의 데이터 교환을 최소화하여 채팅방, 뉴스 시스템 또는 기타 대화형 응용 프로그램에서 사용할 수 있는 방법을 보여 드리겠습니다. 당신은 무엇을 원합니까?

요소:

PHP4
JavaScript
프레임

아이디어:
일시적으로 PHP로 작성된 HTTP 채팅방 프로그램을 개발해 보겠습니다. HTTP는 채팅에 그다지 좋은 프로토콜은 아니지만 방화벽과 프록시 서버의 영향을 받지 않으며 Java 애플릿 없이도 PHP의 잠재력을 최대한 활용할 수 있습니다. 채팅방 프로그램에는 두 가지 주요 문제점이 있습니다. 첫 번째는 IE가 "푸시" 방식을 지원하지 않기 때문에 완전한 "풀" 애플리케이션으로 만들어야 한다는 것입니다(클라이언트가 자동으로 새로 고침되는 것을 의미함). 채팅 프로그램용. 우리는 클라이언트의 새로 고침 시간을 조정할 수 있도록 할 예정이며, 서버는 이전 x분 이내에 메시지 데이터를 수신하기 위해 서버의 함수 결과를 기반으로 새로 고침 시간을 생성합니다. 두 번째 문제는 해결하기가 더 어렵습니다. 자동 새로 고침 방식으로 인해 서버는 매번 모든 정보를 클라이언트에 전송해야 하며 이로 인해 많은 양의 전송이 발생할 것으로 예상됩니다. 그리고 간단한 채팅방 모델을 시뮬레이션하기 위해 만든 샘플 프로그램도 이것이 채팅 지연의 주요 원인임을 보여주었습니다. 이 기사에서는 두 번째이자 추가 질문을 다룹니다.

일반 모델:
프레임을 사용하면 다른 프레임을 다시 로드하지 않고도 특정 프레임을 새로 고칠 수 있습니다. 이는 C/S 전송을 최소화하는 데 유용합니다. 우리 모델은 프레임 구조를 정의하는 데 사용되는


메인 파일 디자인을 기반으로 합니다.
프레임 파일을 로드합니다.
프레임 파일을 표시합니다.
우리의 설계에서는 로드 프레임이 "x"초마다 자동으로 새로 고쳐집니다. 기본 파일에 데이터를 저장하고 로드 프레임 파일이 클라이언트가 아직 수신하지 못한 데이터를 서버에서 요청할 수 있도록 하는 것입니다. 우리는 타임스탬프를 사용하여 전송할 수 있는 메시지, 뉴스 또는 사물을 표시하고 이를 통해 어떤 것이 클라이언트에게 전달되어야 하고 어떤 것이 전달되지 않는지 알 수 있습니다. 우리는 서버에서도 볼 수 있도록 클라이언트에 "마지막 타임스탬프"를 저장하기 위해 PHP4의 세션 기능을 사용합니다. 로드 프레임 파일이 데이터를 수신하면 해당 데이터는 메인 파일에 저장되고(메인 파일은 클 수 있지만 한 번만 전송된다는 점에 유의) 표시 프레임 파일이 새로 고쳐집니다. 추가 최적화를 위해 표시 프레임 파일을 최대한 짧게 유지합니다. 이 프레임에서는 "표시" JavaScript 함수를 호출합니다. 이 함수는 기본 파일에 저장된 데이터를 사용합니다. 디스플레이 프레임을 동적으로 그립니다. 이 방법을 살펴보겠습니다.



브라우저가 메인 파일(프레임 구조)을 요청합니다
프레임 구조를 정의하는 서버에서 메인 파일을 전송한 후 다른 프레임(로딩 프레임 및 표시 프레임)을 전송합니다. .
로드된 프레임 파일은 서버에서 구문 분석되며 클라이언트에 "타임스탬프" 세션 변수가 없는 경우 서버에서 모든 데이터를 검색하고
JavaScript 코드를 생성하여 데이터를 기본 파일에 저장합니다. . 그런 다음 "타임스탬프" 세션 변수를 설정합니다.
그런 다음 프레임 파일을 로드하고 클라이언트가 디스플레이 프레임 파일을 새로 고칠 수 있도록 JavaScript 코드를 생성합니다.
이 새로 고침을 통해 표시 프레임 파일은 데이터를 기반으로 표시 프레임을 생성하는 "표시" 함수를 호출합니다.
매 "x"초마다 (2)로 돌아갑니다.
이 방법에 대한 분석은 다음과 같습니다.

3개의 파일이 필요합니다.

기본 파일(대형, 디스플레이 포함) 코드 및 저장된 변수 및 초기값)
로드 프레임 파일(작음, PHP 코드 포함, 서버에서 데이터를 검색하고 JavaScript 코드 생성에 사용됨)
디스플레이 프레임 파일(매우 작음, 기본 디스플레이 기능 한 쌍만 있음) 파일에서 호출)


메인 파일은 한 번만 전송됩니다.
로드 프레임 파일과 디스플레이 프레임 파일은 "x"초마다 전송됩니다.
로딩 프레임 파일은 처음 호출할 때 크기가 더 커질 수 있지만, 매번 클라이언트에서 가져오지 않은 데이터만 가져오기 때문에 매우 짧아집니다.
표시 프레임 파일도 마찬가지입니다.
표시 결과가 클라이언트 측에서 처리되므로 서버 데이터의 로딩을 줄입니다.

헷갈리시나요? 예를 살펴보겠습니다.

이 예에서는 채팅방을 만들었습니다. 실제로는 사용할 수 없습니다. 단지 모델을 구현하는 방법을 보여주기 위한 것입니다. 채팅 안되나요?" "방에 이 기능을 추가하거나 저 기능을 추가하세요" 등이 있습니다. 이 모델이 유용하다고 생각되면 이를 사용하여 요구 사항을 충족할 만큼 복잡한 채팅방을 구축할 수 있지만 단순한 채팅방 이상의 용도로 사용될 수 있다는 점을 명심하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.