쿠키를 사용하여 귀하의 서버에 데이터를 전송할 수있습니다지만, 어떤 구현을 사용하여 그들이 심각하게 제한됩니다. 쿠키는 최대 크기의 4k, 그리고 각 도메인을 설정 20 개만 그들의 즉, 각각의 요청이 될 크기 - 제한되어있습니다. 쿠키 - 기반 아약스는 대부분의 사이트가 설계된 때 유용에 대한 것이, 그 제한이있어 하드를 사용하기 때문에 그것으로 대체합니다. 의 기본적인 기능이 제공되는가를 설정하여 쿠키를 로딩 이미지를 입력한 다음의 응답을 기다리는 동안 투표소에 대한 간격을 표시합니다. 의 구현은 간단합니다; 이렇게 무언 이외의 내용을 알려주 결과, 방금를 설정하여 사용자 지정 oncomplete 이벤트 처리기입니다. 들어있는 서버를 제공합니다 입력 및는 횟수가되었습니다 다음의 두 목록라고 불리는이 표시됩니다. 이 예제의 자바 스크립트는 그림과 목록 1과 php 코드를 읽는다은 쿠키를 시작한 다음 세트에 대한 응답은 그림과 목록 2.
목록 1 - 쿠키 - 전원 아약스
| 1 <html> 이 <head> 3 <title> 쿠키 테스트 </ 제목> 4 5 <script type="text/javascript"> 6 함수 cookierequest () () 7 cookierequest.prototype = ( 8 간격 : 500, 9 번 시도 : 5, 10 attemptcounter : 0, 11 호출 : 함수 (하십시오, 페이로드) ( 12 변수 개발 = 새로운 날짜 (); 13 변수 나는 = 새 이미지 (); 14 this.setcookie ( '모나', 페이로드); 15 i.src =하십시오 + '? u = '+ d.gettime (); 16 개 변수 자체 =이; 17 this.timerid = settimeout (함수 () 18 (self.read ();) , this.interval); 19), 20 읽기 : 함수 () ( 21 this.attemptcounter + +; 22 / / 수표에 대한 데이터가 23 변수 데이터 = this.getcookie ( '모나'); 24면 (데이터! = 거짓) ( 25 this.attemptcounter = 0; 26 this.oncomplete (데이터); 27 돌아 진정한; 28) 29 30 / / 수표에 대한 오류 31면 (this.attemptcounter> this.attempts) ( 32 this.onerror (); 33) 다른 사람 ( 34 변수 이름 자체 =이; 35 this.timerid = settimeout (함수 () (self.read ();) , 36 this.interval); 37) 38), 39 oncomplete : 함수 (결과) ( 40 알림 (결과) 41), 42 onerror : 함수 () ( 43 알림 ( '요청 시간이 초과'); 44), 45 setcookie : 함수 (이름, 값, 만료) ( 46 document.cookie = 이름 + "="+ 이스케이프 (값) + 47 ((만료)? "; 이 만료 = "+ 48 expires.togmtstring () : ""); 49), 50 getcookie : 함수 (이름) ( 51 변수 doccookie = document.cookie.split ( ";") ; 52에 대한 (변수 나는 = 0; 나는 <doccookie.length; 저는 + +) ( 53 변수 조각 = doccookie [나는]입니다. 분할 ("="); 54면 (조각 [0] == 이름) ( 55 돌아 unescape (문자열 (조각 [1]). 교체 (/ \ + / g, "")); 56) 57) 58 돌아 거짓; 59) 60) 61 함수를 테스트 () ( 62 변수 모나 = 새 cookierequest (); 63 cr.call ( 'cookie.php', '몇가 들어 데이터'); 64) 65 </ 스크립트> 66 </ 머리> 67 <body> 68 <a href='javascript:test()'> 테스트 </ a> 69 </ 몸> |
|
|
에 상장 1,은 쿠키 - 전원 아약스 기능은 포장 내부에 자바 스크립트 클래스 cookierequest. 요청을 서버에 대한 호출 방식으로 이루어집니다 (행 11월 19일)입니다. 에 대한 호출 메소드는 이미지를 어떤을 보내려는 요청합니다. 또 소요되는 페이로드 (가 콘텐츠를 서버로 보내 우리가 원하는), 이는 요청에 쿠키를 전송합니다. 방법은 다음을 사용합니다 setcookie 방법을 설정하는 쿠키라는 이름 모나 (행 14); 그런 다음 새 이미지 객체를 생성하고 설정을 src가 요청된 (행 15). 이 메소드가 완료된을 시작하여 타이머를 실행합니다 읽는 방법을 매 500 밀리초입니다.
의 읽기 방식 (라인 2038)를 검사의 존재의 모나 쿠키 (줄 2324). 만약 존재한다면,이 데이터의이다에 전달 oncomplete 방법 (행 26). 이 데이터가 없을 경우, 우리가 검사에 오류가; 이 작업의 수를 비교하여 점검을 완성했습니다에 반대하는 최대 수표를 설정하려고 시도 속성 (행 31). 이있을 경우 오류를 onerror 방법이라고합니다 (행 32). 오류가 존재하지 않으면, 우리는 또 다른 타이머를 시작하려면 다음을 확인 (행 34-35).
라인 39에서 44 사이가 포함되어있는 방법을 무시하면 귀하의 클래스를 사용합니다. 가 oncomplete 방법은 데이터가 성공적으로 로드될 때 호출됩니다. 이것은 동급의 콜백 속성에 httpclient 클래스입니다. 가 onerror 방법이라고합니다 성공적으로 완료되면 요청을하지 않는다; 물론 이것으로 경고를 남길 수있습니다,하지만, 대부분의 경우, 해당 오류 메시지를 제공하는 더 많은 이해를 사용자 또는 심지어 시도가 요청 .
가 cookierequest 수업도 들어 도우미 방법에 대한 대처 얻기 및 설정을 쿠키가있습니다. setcookie (줄 45에서 49 사이)를 작품의 값을 설정하여 document.cookie를 urlencoded 문자열의 형식에 대한 쿠키 이름 = 값입니다. getcookie (줄 50에서 59 사이)의 작동에 의해 분리 document.cookie를 하나의 부분은 각 쿠키 (쿠키가로 구분하여 ";") 다음 루핑을 통해 이러한 부분을 찾고 쿠키를 사용하여 지정된 이름입니다. 경우에 일치하는 이름이 발견, 값이 반환; 그렇지 않으면, 거짓이 반환됩니다.
가 php와 함께 사용 목록이 표시되는 페이지에서 listing2. 로 사용되는 것은 통화 방법 및 처리에하십시오 페이로드는 세트; 그런 다음 세트에 대한 응답에 대한 읽기를 잡고있습니다.
목록 2 - php 서버 페이지에 대한 처리를하는 쿠키 아약스 요청
| 1 <? php 이 session_start (); 3면 (! isset ($ _session [ '내'])) ( 4 $ _session [ '내'] = 0; 5) 6면 (isset ($ _cookie [ '모나'])) ( 7 $ _session [ '나는 ']++; 8 setcookie ( '모나', '서버 응답 :'. $ _session [ '나는 '].', 9 '입니다. $ _cookie [ '모나']); 10) 11? > |
이 php 코드와 상호 작용하는 데 필요한 기본 기능을 제공합니다 쿠키 - 기반 아약스를 요청합니다. php 세션을 저장하기 위해 사용하고 증분으로 항의하고 각 요청은합니다. 으로 여러분을 연장이 코드를 사용할 수있습니다 서로 다른 php 페이지를 결정하는 작업을 수행하거나 그 정보를 포함시킬 수있습니다 쿠키가 보낸 클라이언트입니다. 라인 2에서 5 사이 핸들 기본적인 세션을 설치, 설정이 카운터가 0이의 첫 번째 전화를합니다. 라인 60에서 10 사이 처리하는 검사의 클라이언트 쿠키를 보내고 응답의입니다. 이 작업을 설정하면 쿠키가 그 다음으로 전송됩니다 응답 (라인 8에서 9 사이). 대형 서버 응답을 처리하기 위해 필요한 경우, 당신은 코드를 분할은 데이터를 포함시킬 필요가 여러 쿠키들 사이입니다.
|
|