AJAX Rückfall Wahl 2 ~, das einen Antrag mit einem Plätzchen sendet

Sie können Daten auf Ihren Bediener mit Plätzchen übertragen, aber jede mögliche Implementierung, die sie verwendet, ist streng begrenzt. Plätzchen haben eine maximale Größe von 4k, und jedes Gebiet kann nur 20 von ihnen einstellen, das bedeutet, daß jeder Antrag Größe-begrenzt sein wird. Plätzchen-gegründetes AJAX ist am nützlichsten, wenn Ihr Aufstellungsort für ihn bestimmt ist, weil seine Beschränkungen es hart, es als Rückfall zu verwenden bilden. Die grundlegende Funktionalität wird von der Einstellung eines Plätzchens zur Verfügung gestellt und lädt ein Bild und dann Wahl auf einem Abstand bei der Aufwartung, daß die Antwort erscheint. Die Implementierung ist einfach; um etwas außer dem Alarmieren des Inhalts des Resultats zu tun, stellten Sie gerade Ihre eigene kundenspezifische onComplete Fallzufuhr ein. Ein Beispiel, in dem der Bediener den Eingang und die Zahl Zeiten es zurückbringt, ist wird gezeigt in den folgenden 2 Auflistungen benannt worden. Javascript des Beispiels wird in Auflistung 1 gezeigt und der PHP Code, der das Plätzchen liest und dann eine Antwort einstellt, wird in Auflistung 2 gezeigt.

Registrierung Von von 1 Plätzchen-Angetriebenem AJAX

1 < HTML >
2 < Kopf >
3       < title>Cookie Test</title >
4
5 < Index type="text/javascript" >
6 Funktion CookieRequest() {}
7 CookieRequest.prototype = {
Abstand     8: 500.
9     Versuche: 5.
attemptCounter     10: 0.
Anruf     11: function(url, payload) {
12         var d = neues Date();
13         var I = neues Image();
14         this.setCookie('CR', payload);
15         i.src = URL + '?u = ' + d.getTime();
16         var Selbst = dieses;
17         this.timerId = setTimeout(function()
18                                 {self.read(); }, this.interval);
19     },
20     gelesen: function() {
21         this.attemptCounter++;
22         //Überprüfung auf Daten
23         var Daten = this.getCookie('CR ');
24         wenn (Daten! = falsch) {
25             this.attemptCounter = 0;
26             this.onComplete(data);
27             Rückhol richten aus;
28         }
29
30          //Überprüfung auf Störung
31          wenn (this.attemptCounter > this.attempts) {
32              this.onError();
33         } sonst {
34             var Selbst = dieses;
35             this.timerId = setTimeout(function() {self.read(); },
6                                     this.interval);
37         }
38     },
onComplete     39: function(result) {
alert(result)         40
41     },
onError     42: function() {
43         alert('Request Zeit festgesetzt aus ');
44     },
setCookie     45: function(name, Wert, läuft) ab {
46         document.cookie = Name + "=" + escape(value) +
47                         ((läuft ab)? "; läuft = "+ ab
48                         expires.toGMTString(): "");
49     },
getCookie     50: function(name) {
51         var docCookie = document.cookie.split("; ");
52         für (var i=0; I < docCookie.length; i++){
53             var Stück = docCookie[i].split("=");
54             wenn == (piece[0 ] Name) {
55                 Rückholunescape(String(piece[1 ]).
                   replace(/\+/g, ""));
56             }
57         }
58         Rückholfalsche;
59     }
60}
61 Funktion test() {
62      var Cr = neues CookieRequest();
63      cr.call('cookie.php', 'Some Beispiel-Daten ');
64}
65 </Index >
66 </Kopf >
67 < Körper >
68         < ein href='javascript:test()'>Test</a >
69 </Körper >
  

In Auflistung 1, wird die Plätzchen-angetriebene AJAX Funktionalität innerhalb der Javascriptkategorie CookieRequest aufgewickelt. Anträge zum Bediener werden mit der Anrufmethode (Linien 11-19) gebildet. Die Anrufmethode nimmt ein URL, zu dem den Antrag senden. Sie nimmt auch eine Nutzlast (den Inhalt, den wir zum Bediener schicken möchten), die in das Antragplätzchen gesendet wird. Die Methode verwendet dann die setCookie Methode, um ein Plätzchen einzustellen genannt CR (Linie 14); sie dann verursacht einen neuen Bildgegenstand und stellt sein src auf das erbetene URL ein (Linie 15). Die Methode beendet, indem sie einen Timer beginnt, der die gelesene Methode alle 500 Millisekunden laufen läßt.

Die gelesene Methode (Linien 2038) überprüft auf das Vorhandensein des CR-Plätzchens (Linien 2324). Wenn sie besteht, werden die Daten in ihr zur onComplete Methode (Linie 26) übermittelt. Wenn die Daten nicht anwesend sind, überprüfen wir auf Störungen; dieses wird getan, indem man die Zahl Überprüfungen vergleicht, die wir gegen die maximalen Überprüfungen durchgeführt haben, die in die Versuche Eigenschaft (Linie 31) eingestellt werden. Wenn es eine Störung gibt, wird die onError Methode benannt (Linie 32). Wenn keine Störung anwesend ist, beginnen wir einen anderen Timer, um die folgende Überprüfung (Linien 34-35) zu tun.

Linien 39-44 enthalten Methoden, die Sie überlaufen, wenn Sie die Kategorie verwenden. Die onComplete Methode wird benannt, wenn Daten erfolgreich geladen werden. Dieses ist das Äquivalent der Wiederholungsbesuch Eigenschaft in der HttpClient Kategorie. Die onError Methode wird benannt, wenn der Antrag nicht erfolgreich durchführt; selbstverständlich konnten Sie dieses als Alarm lassen, aber in den meisten Fällen wünschen Sie eine verständlichere Fehlermeldung zu Ihren Benutzern zur Verfügung stellen oder sogar den Antrag wieder versuchen.

Die CookieRequest Kategorie enthält auch Helfermethoden für das Beschäftigen das Erhalten und einstellenplätzchen setCookie (Linien 45-49) Arbeiten, indem sie den Wert von document.cookie auf a einstellten, urlencoded Zeichenkette im Format Plätzchen name=value. getCookie (Linien 50-59) der Arbeiten, indem sie document.cookie in ein Teil für jedes Plätzchen aufspalteten (die Plätzchen werden durch ";" getrennt) und dann, schlingend über diesen Teilen, die nach einem Plätzchen mit dem spezifizierten Namen suchen. Wenn ein zusammenpassender Name gefunden wird, wird der Wert zurückgebracht; andernfalls falsch wird zurückgegangen.

Die PHP Seite, die mit Listing1 benutzt wird, wird in Listing2 gezeigt. Sie wird als das URL in der Anrufmethode verwendet und die Nutzlast verarbeitet, die eingestellt wird; sie stellt dann eine Antwort für gelesen zum Zupacken ein.

Registrierung 2 - PHP Bediener-Seite für die Behandlung eines Antrags des Plätzchen-AJAX

1  <?php
session_start()  2;
3  wenn (!isset($_SESSION['i ' ])) {
4      $_session['i ' ] = 0;
5  }
6  wenn (isset($_COOKIE['CR ' ])) {
7      $_session['i']++;
8      setcookie('CR', 'Server reagiert: ' $_SESSION['i '].',
9                ' $_COOKIE['CR ' ]);
10}
11? >

Dieser PHP Code liefert die grundlegende Funktionalität, die benötigt wird, um auf Plätzchen-gegründete AJAX Anträge einzuwirken. Er verwendet PHP Lernabschnitte, um einen Kostenzähler und Stufensprünge zu speichern es, während jeder Antrag gebildet wird. Da Sie diesen Code verlängern, konnten Sie unterschiedliche PHP Seiten benutzen, um zu entscheiden, welcher Tätigkeit zum durchzuführen oder Sie diese Informationen im Plätzchen einschließen konnten, das vom Klienten gesendet wird. Linien grundlegende Lernabschnitteinstellung des 2-5 Handgriffs, den Kostenzähler bis 0 einstellend, wenn dieses der erste Anruf ist. Linien 6-10 Handgriff die Überprüfung des Klient Plätzchens und das Senden der Antwort. Dieses wird getan, indem man ein Plätzchen einstellt, das dann mit der Antwort (Linie 8-9) gesendet wird. Wenn Sie große Bedienerantworten anfassen möchten, würden Sie Code einschließen müssen, um die Daten unter mehrfachen Plätzchen aufzuspalten.

dieses ist ein Artikel, der durch Lied Rudenberg hinzugefügt wird


Verzicht: Unsere Web site ist nicht zu der Information verantwortlich, die durch diesen Artikel enthalten wird. Dieser Artikel reflektiert keineswegs die Ansichten, die Meinungen, die Gedanken oder den Glauben des Artikelverzeichnisstabes.

Übersetzung Nachricht: Der Artikel "AJAX Rückfall Wahl 2 das ~, das einen Antrag verwendet ein Plätzchen" sendet, wurde mit einem automatisierten Übersetzungsdienst übersetzt. Wir entschuldigen herzlichst uns für alle mögliche Übersetzung Störungen, die auftraten. Danke für das Verstehen.

Online: 508 users browsing the articles directory