프로그램을 다른 언어로 내보내는 것은 프로그래머들이 좋아하는 것 중 하나입니다.
가 WEB에 있습니다.
두 가지 다른 프로그래밍 환경: HTTP 프로토콜의 정의에 따른 클라이언트(브라우저) 및 서버 측,
클라이언트에서 다른 언어를 출력하는 서버 프로그램을 작성할 수 있습니다
서버측 언어와 JavaScript가 클라이언트 출력으로 사용됩니다. 이 질문에서는 사용 방법을 보여 드리겠습니다.
이 솔루션은 클라이언트 측에 데이터를 저장하고 채팅방, 뉴스 시스템 또는 원하는 곳에 표시합니다
구현된 애플리케이션은 서버와 클라이언트(브라우저) 간의 데이터 전송을 최소화합니다.
지원 요청 대상:
PHP4
자바스크립트
프레임
주요 아이디어:
우리는 PHP를 사용하여 HTTP 프로토콜 기반의 채팅방(HTTP CHAT ROOM)을 개발하려고 노력해 왔습니다.
HTTP 프로토콜은 채팅에 적합한 프로토콜은 아니지만 방화벽이나 프록시의 영향을 받지 않습니다.
PHP는 JAVA APPLETS를 사용하지 않고도 이 기능을 완벽하게 구현할 수 있습니다. 채팅방에는 두 가지 주요 문제가 있습니다.
첫째, IE는 SERVER PUSH 기술을 지원하지 않기 때문에 CLIENT PULL 기술만 사용할 수 있습니다(즉,
클라이언트에서 자동 새로 고침), 두 번째 문제는 훨씬 더 심각합니다. 아이디어는 클라이언트에서 새로 고치는 것이기 때문에 서버
서버는 매번 모든 메시지를 전송해야 하는데, 이는 엄청난 양의 데이터 전송을 의미하며, 이는 채팅방 지연의 주요 원인이기도 합니다
주된 이유 때문에 이 기사는 문제를 해결하려고 시도합니다.
프레임 기술(프레임)을 사용하면 다른 페이지를 다시 로드하지 않고도 지정된 페이지를 새로 고칠 수 있습니다.
서비스/클라이언트(C/S) 데이터 전송량을 줄이기 위해. 우리 모델은 이 계획을 기반으로 합니다.
"마스터" 파일: 프레임워크 구조 정의
"로더" 페이지: 데이터 가져오기
"표시" 페이지: 데이터 표시
이 솔루션에서는 "loder" 상자가 "x"초마다 자동으로 새로 고쳐집니다. 아이디어는 데이터를 "마스터"에 저장하는 것입니다.
따라서 "loder" 페이지는 클라이언트가 가지고 있지 않은 서버의 데이터만 요청하면 됩니다.
각 메시지를 기록하여 클라이언트에 전송해야 하는 메시지와 전송하면 안 되는 메시지를 결정합니다. PHP4.0 세션 관리(세션)를 사용합니다
타임스탬프가 서버와 클라이언트 모두에 표시되도록 클라이언트의 마지막 업데이트 타임스탬프를 저장합니다. "로더" 파일
"마스터" 파일에서 데이터가 수신되면(참고: "마스터" 파일은 크지만 한 번만 전송됩니다) 디스플레이 페이지("diaplay")를 새로 고칩니다.
"디스플레이" 페이지는 "마스터" 파일에 있는 "displaymsgs()"라는 자바스크립트 함수를 호출하여 메시지를 표시합니다. 이 기능은 동적으로 표시됩니다
"마스터" 파일에 저장된 데이터는 일반적인 흐름도입니다.
1. 브라우저는 "마스터" 페이지(프레임)를 요청하고 "마스터" 페이지는 서버에서 클라이언트(브라우저)로 전송된 다음 "마스터" 페이지를 전송합니다.
파일은 프레임워크를 생성하고 "로더" 및 "디스플레이" 페이지를 클라이언트에 전송합니다.
2. 서버 측에서는 "로더" 파일이 분석됩니다. 클라이언트가 "타임스탬프" 세션 변수를 정의하지 않으면 "loder" 파일은
이 됩니다.
서버에서 모든 데이터를 가져와서 자바스크립트 코드를 생성하여 "마스터" 파일에 데이터를 저장한 다음 "timestamp" 변수를
로 저장합니다.
세션 변수.
3. "loder" 페이지는 "디스플레이" 페이지를 새로 고치는 자바스크립트 코드를 생성합니다.
4. 새로 고침 요청으로 인해 "display" 페이지에서 "diaplaymsgs()" javascript 함수를 호출하여 데이터를 표시합니다.
5. "x"초마다 2단계로 돌아가세요
다음과 같이 생각해볼 수 있습니다.
================================================= ======
"마스터" 파일: 매우 크며, displaymsgs() 함수를 정의하고 데이터와 초기 값을 저장합니다.
"로더" 파일: 작으며 서버에서 데이터를 검색하고 자바스크립트 코드를 생성합니다.
"display" 파일: 매우 작으며 "master" 파일의 "diaplaymsgs()" 함수 호출
================================================= =======
참고: "마스터" 파일은 한 번만 전송됩니다.
"loder" 및 "display" 파일은 "x"초마다 새로 고쳐집니다.
"loder"는 첫 번째 전송 중에는 매우 클 수 있지만 앞으로는 매우 작을 것입니다
"diaplay" 파일은 변경되지 않은 상태로 유지됩니다.
위의 아이디어에 대해 여전히 명확하지 않은 경우 아래에서 방법을 자세히 설명하기 위해 채팅방을 구성하겠습니다. 이 채팅방은 단지 간단한 시연을 위한 것입니다
따라서 별로 유용하지 않을 수도 있지만 이 아이디어를 사용하면 더 복잡한 채팅방을 만들 수 있습니다. 이 아이디어는 채팅방에만 적용되는 것이 아닙니다. :)
먼저 MySQL 데이터베이스 양식을 사용하세요.
============================
테스트 가능한 테이블 생성(
타임스탬프 날짜/시간,
텍스트
);
============================
"마스터" 파일은 다음과 같습니다.
=================================================
~
라인=새 배열()
함수 디스플레이msgs() {
for(i=0;i
display.document.write('
')
~
~