아약스 대체 옵션 2 ~ 보내지는 요청을 사용하여 쿠키

쿠키를 사용하여 귀하의 서버에 데이터를 전송할 수있습니다지만, 어떤 구현을 사용하여 그들이 심각하게 제한됩니다. 쿠키는 최대 크기의 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 사이). 대형 서버 응답을 처리하기 위해 필요한 경우, 당신은 코드를 분할은 데이터를 포함시킬 필요가 여러 쿠키들 사이입니다.

이것은 문서가 추가 캐럴 rudenberg
면책 조항 : 우리의 웹사이트가 포함되어있는 정보는이 문서에 대해 책임을지지 않습니다. 본 문서를 어떠한 방식 으로든 반영합니다 조회, 의견, 생각이나 신념의 기사를 디렉토리 직원입니다.

번역을 고지 :이 문서 "아약스 대체 옵션 2 ~ 보내지는 요청을 사용하는 쿠키"는 번역하는 자동 번역 서비스를 사용합니다. 우리가 진심을 끼쳐 드려 번역 오류가 발생했습니다. 이해에 감사드립니다.

Online: 553 users browsing the articles directory