PHP schnell!
| by Dennis Pallett | November 28, 2004
Einleitung
PHP kann für eine Menge unterschiedliche Sachen verwendet werden und ist eine der bedeutendsten scripting Sprachen, die auf dem Netz vorhanden sind. , es nicht ist zu erwähnen extrem preiswert und am meisten benutzt. Jedoch eine Sache, die PHP ermangelt, und tatsächlich sind die meisten scripting Sprachen, sind eine Weise, Seiten in der Realzeit zu aktualisieren, ohne zu müssen, eine Seite neu zu laden oder einzureichen, eine Form.
Das Internet wurde nicht für dieses gebildet. Das web browser schließt den Anschluß mit dem web server, sobald es alle Daten empfangen hat. Dies heißt das, nachdem diese no more Daten ausgetauscht werden können. Was, wenn du wünschst, ein Update zwar? Wenn du eine PHP Anwendung (z.B. ein hochwertiges zufriedenes Managementsystem) errichtest, dann ist it'd ideal, wenn es fast wie eine gebürtige Windows/Linux Anwendung funktionierte.
Aber das erfordert Realzeitupdates. Etwas, das nicht möglich ist oder also du würdet denken. Ein gutes Beispiel einer Anwendung, die (fast) in der Realzeit arbeitet, ist GMail Googles (http://gmail.google.com). Alles ist das angetriebene Javascript und es ist sehr leistungsfähig und dynamisch. Tatsächlich ist dieses einer der größten Verkaufenpunkte von GMail. Was, wenn du dieses in deinen eigenen PHP Web site außerdem haben könntest? Schätzen, was, ich dich in diesem Artikel zeigen werden.
Wie funktioniert es?
Wenn du einen PHP Index durchführen möchtest, mußt du eine Seite neu laden, reichst eine Form ein, oder ähnliche etwas. Im Allgemeinen muß ein neuer Anschluß zum Bediener geöffnet werden, und dieser bedeutet, daß die Datenbanksuchroutine zu einer neuen Seite geht und die vorige Seite verliert. Während langer wann jetzt, haben Netzentwickler Tricks verwendet, um um dieses, wie das Verwenden eines Iframe 1x1 zu erhalten, in dem eine neue PHP Seite geladen wird, aber diese weit von ideales ist.
Jetzt gibt es eine neue Weise der Durchführung eines PHP Indexes, ohne zu müssen, die Seite neu zu laden. Die Grundlage hinter dieser neuen Weise ist ein Javascriptbestandteil, der den XML HTTP Antrag-Gegenstand genannt wird. http://jibbering.com/2002/4/httprequest.html zu mehr Information über den Bestandteil sehen. Er wird in alle Hauptdatenbanksuchroutinen gestützt (Internet Explorer 5.5+, Safari, Mozilla/Firefox und Oper 7.6+).
Mit diesem Gegenstand und einigen Gewohnheit Javascriptfunktionen kannst du einige ziemlich eindrucksvolle PHP Anwendungen verursachen. Lassen Sie uns ein erstes Beispiel betrachten, das dynamisch das Datum/die Zeit aktualisiert.
Beispiel 1
Zuerst den Code ihm in einer Akte unten und außer kopieren, die „script.js“ genannt wird: var xmlhttp=false; /*@cc_on @*//*@if (@_jscript_version >= 5)/JScript gibt uns bedingte Kompilation, können wir mit altem IE Versionen./und Sicherheit blockierter Kreation der Gegenstände fertig werden. Versuch {xmlhttp = neues ActiveXObject („Msxml2.XMLHTTP“); } Verriegelung (e) {Versuch {xmlhttp = neues ActiveXObject („Microsoft.XMLHTTP“); } Verriegelung (e) {xmlhttp = falsch; }} @end @*/if (! xmlhttp && typeof XMLHttpRequest! = ' undefined') {xmlhttp = neues XMLHttpRequest ();}Funktion loadFragmentInToElement (fragment_url, element_id) {var Element = document.getElementById (element_id); element.innerHTML = „<em>Loading… </em>“; xmlhttp.open (, fragment_url „ERHALTEN“); xmlhttp.onreadystatechange = Funktion () {wenn (xmlhttp.readyState == 4 && xmlhttp.status == 200) {element.innerHTML = xmlhttp.responseText; }} xmlhttp.send (Null);}
Den Code dann unten kopieren, und ihn in einer Akte kleben, die „server1.php“ genannt wird: <? phpecho Datum („L dS von F Y h: I: s. A.“);? >
Und schließlich, den Code unten kopieren, und ihn in einer Akte kleben, die „client1.php“ genannt wird. Bitte zwar merken, daß du die Linie redigieren mußt, die 'http://www.yourdomain.com/server1.php' zur korrekten Position von server1.php auf deinem server.< sagt! DOCTYPE HTML ÖFFENTLICHKEIT“ - //W3C//DTD HTML 4.01 Strict//EN " ><html><head><title>Example 1</title><script src= " script.js " type= " Text/Javascript " ></script><script type= " Text/Javascript " > Funktion updatedate () {loadFragmentInToElement ('http://www.yourdomain.com/server1.php', „currentdate“); } ist </script></head><body> das Tagesdatum <span id= " currentdate " ><? php Echodatum („L dS von F Y h: I: s. A.“); ? ></span>.<br/><br/> <input type= " Taste " value= " Updatedatum " OnClick= " updatedate (); „/></body></html>
Zu http://www.yourdomain.com/client1.php jetzt gehen und die Taste an klicken, die „Updatedatum“ sagt. Das Datum aktualisiert, ohne die müssende Seite neu geladen werden. Dieses wird mit dem XML HTTP Antraggegenstand getan. Dieses Beispiel kann bei http://www.phpit.net/demo/php%20on%20the%20fly/client1.php auch online angesehen werden.
Beispiel 2
Lassen Sie uns ein vorgerückteres Beispiel versuchen. Im folgenden Beispiel kann der Besucher zwei Zahlen eingeben, und sie werden oben durch PHP hinzugefügt (und nicht durch JavaScript). Dieses zeigt die zutreffende Energie von PHP und von XML HTTP Antrag-Gegenstand.
Dieses Beispiel verwendet das gleiche script.js wie im ersten Beispiel, also brauchst du nicht, dieses wieder zu verursachen. Zuerst den Code unten kopieren und ihn in einer Akte kleben, die „server2.php“ genannt wird: <? php//erhalten numbers$num1 = intval ($_GET [„num1“]); $num2 = intval ($_GET [„num2“]); /Rückholanswerecho ($num1 + $num2);? >
Und dann, den Code unten kopieren, und ihn in einer Akte kleben, die „client2.php“ genannt wird. Bitte zwar merken, daß du die Linie redigieren mußt, die 'http://www.yourdomain.com/server2.php' zur korrekten Position von server2.php auf deinem server.< sagt! DOCTYPE HTML ÖFFENTLICHKEIT“ - //W3C//DTD HTML 4.01 Strict//EN " ><html><head><title>Example 2</title><script src= " script.js " type= " Text/Javascript " ></script><script > Funktion calc () {num1 = document.getElementById type= " Text/Javascript " („num1“) .value; num2 = document.getElementById („num2“) .value; var Element = document.getElementById („Antwort“); xmlhttp.open (, 'http://www.yourdomain.com/server2.php?num1=' + num1 „ERHALTEN“ + „&num2=“ + num2); xmlhttp.onreadystatechange = Funktion () {wenn (xmlhttp.readyState == 4 && xmlhttp.status == 200) {element.value = xmlhttp.responseText; }} xmlhttp.send (Null); } </script></head><body> Gebrauch die unten Form, zwei Zahlen oben zu addieren. Die Antwort wird durch einen PHP Index und <em>not</em> mit Javascript errechnet. Was ist der Vorteil zu diesem? Du kannst Bedienerseite Indexe (PHP) ohne zu müssen durchführen, das page.<br/><br/> <input type= " Text“ id= " num1“ size= " 3“ zu erneuern/> + <input type= " Text“ id= " num2“ size= " 3“/> = <input type= " Text“ id= " Antwort“ size=, ", das das 5“/> <input type= " Taste“ value= " errechnen!“ OnClick= " calc (); „/></body></html>
Wenn du dieses Beispiel laufen läßt, kannst du zwei Zahlen mit PHP und keine Neuladung an allen oben addieren! Wenn du nicht dieses Beispiel erhalten kannst, um zu arbeiten, einen Blick auf http://www.phpit.net/demo/php%20on%20the%20fly/client3.php dann haben, zum des on-line Beispiels zu sehen.
Irgendwelche Nachteile…?
Es gibt nur zwei reale Nachteile zu diesem System. Zuerst von allen, stützt niemand, das Javascript abstellen läßt oder ihre Datenbanksuchroutine nicht den XML HTTP Antrag-Gegenstand werden nicht laufen lassen ihn. Dies heißt, daß du mußt überprüfen, ob es eine NichtJavascript Version gibt oder sicherstellen alle deine Besucher, Javascript ermöglichen zu lassen (z.B. eine Intranet Anwendung, wo du JS benötigen kannst).
Ein anderer Nachteil ist die Tatsache, daß er Bookmarks bricht. Leute werden nicht bookmarken deine Seiten, wenn es irgendeinen dynamischen Inhalt innen dort gibt. Aber, wenn du eine PHP Anwendung (und nicht eine PHP Web site) verursachst, dann sind Bookmarks vermutlich nicht irgendwie sehr nützlich.
Zusammenfassung
Da ich dich gezeigt habe mit zwei sehr einfachen Beispielen, ist es völlig möglich, PHP Indexe durchzuführen, ohne zu müssen, die Seite zu erneuern. Ich schlage vor, daß du mehr über den XML HTTP Antrag-Gegenstand liest (http://jibbering.com/2002/4/httprequest.html) und seine Fähigkeiten.
Die Sachen, die du tun kannst, sind grenzenlos. Z.B. könntest du ein extrem ordentliches Seiteneinteilungs-System verursachen, das die Neuladung nicht an allen erfordert. Oder du könntest ein GUI für deine PHP Anwendung herstellen, die genau wie Windows XP sich benimmt. An sie einfach denken!
Bewußt zwar sein, daß Javascript ermöglicht werden muß, damit dieses arbeitet. Ohne Javascript ist dieses vollständig unbrauchbar. Stellen so dein Besucherunterstützungsjavascript sicher oder verursachen eine NichtJavascript Version außerdem.
PHP kann für eine Menge unterschiedliche Sachen verwendet werden und ist eine der bedeutendsten scripting Sprachen, die auf dem Netz vorhanden sind. , es nicht ist zu erwähnen extrem preiswert und am meisten benutzt. Jedoch eine Sache, die PHP ermangelt, und tatsächlich sind die meisten scripting Sprachen, sind eine Weise, Seiten in der Realzeit zu aktualisieren, ohne zu müssen, eine Seite neu zu laden oder einzureichen, eine Form.
Das Internet wurde nicht für dieses gebildet. Das web browser schließt den Anschluß mit dem web server, sobald es alle Daten empfangen hat. Dies heißt das, nachdem diese no more Daten ausgetauscht werden können. Was, wenn du wünschst, ein Update zwar? Wenn du eine PHP Anwendung (z.B. ein hochwertiges zufriedenes Managementsystem) errichtest, dann ist it'd ideal, wenn es fast wie eine gebürtige Windows/Linux Anwendung funktionierte.
Aber das erfordert Realzeitupdates. Etwas, das nicht möglich ist oder also du würdet denken. Ein gutes Beispiel einer Anwendung, die (fast) in der Realzeit arbeitet, ist GMail Googles (http://gmail.google.com). Alles ist das angetriebene Javascript und es ist sehr leistungsfähig und dynamisch. Tatsächlich ist dieses einer der größten Verkaufenpunkte von GMail. Was, wenn du dieses in deinen eigenen PHP Web site außerdem haben könntest? Schätzen, was, ich dich in diesem Artikel zeigen werden.
Wie funktioniert es?
Wenn du einen PHP Index durchführen möchtest, mußt du eine Seite neu laden, reichst eine Form ein, oder ähnliche etwas. Im Allgemeinen muß ein neuer Anschluß zum Bediener geöffnet werden, und dieser bedeutet, daß die Datenbanksuchroutine zu einer neuen Seite geht und die vorige Seite verliert. Während langer wann jetzt, haben Netzentwickler Tricks verwendet, um um dieses, wie das Verwenden eines Iframe 1x1 zu erhalten, in dem eine neue PHP Seite geladen wird, aber diese weit von ideales ist.
Jetzt gibt es eine neue Weise der Durchführung eines PHP Indexes, ohne zu müssen, die Seite neu zu laden. Die Grundlage hinter dieser neuen Weise ist ein Javascriptbestandteil, der den XML HTTP Antrag-Gegenstand genannt wird. http://jibbering.com/2002/4/httprequest.html zu mehr Information über den Bestandteil sehen. Er wird in alle Hauptdatenbanksuchroutinen gestützt (Internet Explorer 5.5+, Safari, Mozilla/Firefox und Oper 7.6+).
Mit diesem Gegenstand und einigen Gewohnheit Javascriptfunktionen kannst du einige ziemlich eindrucksvolle PHP Anwendungen verursachen. Lassen Sie uns ein erstes Beispiel betrachten, das dynamisch das Datum/die Zeit aktualisiert.
Beispiel 1
Zuerst den Code ihm in einer Akte unten und außer kopieren, die „script.js“ genannt wird: var xmlhttp=false; /*@cc_on @*//*@if (@_jscript_version >= 5)/JScript gibt uns bedingte Kompilation, können wir mit altem IE Versionen./und Sicherheit blockierter Kreation der Gegenstände fertig werden. Versuch {xmlhttp = neues ActiveXObject („Msxml2.XMLHTTP“); } Verriegelung (e) {Versuch {xmlhttp = neues ActiveXObject („Microsoft.XMLHTTP“); } Verriegelung (e) {xmlhttp = falsch; }} @end @*/if (! xmlhttp && typeof XMLHttpRequest! = ' undefined') {xmlhttp = neues XMLHttpRequest ();}Funktion loadFragmentInToElement (fragment_url, element_id) {var Element = document.getElementById (element_id); element.innerHTML = „<em>Loading… </em>“; xmlhttp.open (, fragment_url „ERHALTEN“); xmlhttp.onreadystatechange = Funktion () {wenn (xmlhttp.readyState == 4 && xmlhttp.status == 200) {element.innerHTML = xmlhttp.responseText; }} xmlhttp.send (Null);}
Den Code dann unten kopieren, und ihn in einer Akte kleben, die „server1.php“ genannt wird: <? phpecho Datum („L dS von F Y h: I: s. A.“);? >
Und schließlich, den Code unten kopieren, und ihn in einer Akte kleben, die „client1.php“ genannt wird. Bitte zwar merken, daß du die Linie redigieren mußt, die 'http://www.yourdomain.com/server1.php' zur korrekten Position von server1.php auf deinem server.< sagt! DOCTYPE HTML ÖFFENTLICHKEIT“ - //W3C//DTD HTML 4.01 Strict//EN " ><html><head><title>Example 1</title><script src= " script.js " type= " Text/Javascript " ></script><script type= " Text/Javascript " > Funktion updatedate () {loadFragmentInToElement ('http://www.yourdomain.com/server1.php', „currentdate“); } ist </script></head><body> das Tagesdatum <span id= " currentdate " ><? php Echodatum („L dS von F Y h: I: s. A.“); ? ></span>.<br/><br/> <input type= " Taste " value= " Updatedatum " OnClick= " updatedate (); „/></body></html>
Zu http://www.yourdomain.com/client1.php jetzt gehen und die Taste an klicken, die „Updatedatum“ sagt. Das Datum aktualisiert, ohne die müssende Seite neu geladen werden. Dieses wird mit dem XML HTTP Antraggegenstand getan. Dieses Beispiel kann bei http://www.phpit.net/demo/php%20on%20the%20fly/client1.php auch online angesehen werden.
Beispiel 2
Lassen Sie uns ein vorgerückteres Beispiel versuchen. Im folgenden Beispiel kann der Besucher zwei Zahlen eingeben, und sie werden oben durch PHP hinzugefügt (und nicht durch JavaScript). Dieses zeigt die zutreffende Energie von PHP und von XML HTTP Antrag-Gegenstand.
Dieses Beispiel verwendet das gleiche script.js wie im ersten Beispiel, also brauchst du nicht, dieses wieder zu verursachen. Zuerst den Code unten kopieren und ihn in einer Akte kleben, die „server2.php“ genannt wird: <? php//erhalten numbers$num1 = intval ($_GET [„num1“]); $num2 = intval ($_GET [„num2“]); /Rückholanswerecho ($num1 + $num2);? >
Und dann, den Code unten kopieren, und ihn in einer Akte kleben, die „client2.php“ genannt wird. Bitte zwar merken, daß du die Linie redigieren mußt, die 'http://www.yourdomain.com/server2.php' zur korrekten Position von server2.php auf deinem server.< sagt! DOCTYPE HTML ÖFFENTLICHKEIT“ - //W3C//DTD HTML 4.01 Strict//EN " ><html><head><title>Example 2</title><script src= " script.js " type= " Text/Javascript " ></script><script > Funktion calc () {num1 = document.getElementById type= " Text/Javascript " („num1“) .value; num2 = document.getElementById („num2“) .value; var Element = document.getElementById („Antwort“); xmlhttp.open (, 'http://www.yourdomain.com/server2.php?num1=' + num1 „ERHALTEN“ + „&num2=“ + num2); xmlhttp.onreadystatechange = Funktion () {wenn (xmlhttp.readyState == 4 && xmlhttp.status == 200) {element.value = xmlhttp.responseText; }} xmlhttp.send (Null); } </script></head><body> Gebrauch die unten Form, zwei Zahlen oben zu addieren. Die Antwort wird durch einen PHP Index und <em>not</em> mit Javascript errechnet. Was ist der Vorteil zu diesem? Du kannst Bedienerseite Indexe (PHP) ohne zu müssen durchführen, das page.<br/><br/> <input type= " Text“ id= " num1“ size= " 3“ zu erneuern/> + <input type= " Text“ id= " num2“ size= " 3“/> = <input type= " Text“ id= " Antwort“ size=, ", das das 5“/> <input type= " Taste“ value= " errechnen!“ OnClick= " calc (); „/></body></html>
Wenn du dieses Beispiel laufen läßt, kannst du zwei Zahlen mit PHP und keine Neuladung an allen oben addieren! Wenn du nicht dieses Beispiel erhalten kannst, um zu arbeiten, einen Blick auf http://www.phpit.net/demo/php%20on%20the%20fly/client3.php dann haben, zum des on-line Beispiels zu sehen.
Irgendwelche Nachteile…?
Es gibt nur zwei reale Nachteile zu diesem System. Zuerst von allen, stützt niemand, das Javascript abstellen läßt oder ihre Datenbanksuchroutine nicht den XML HTTP Antrag-Gegenstand werden nicht laufen lassen ihn. Dies heißt, daß du mußt überprüfen, ob es eine NichtJavascript Version gibt oder sicherstellen alle deine Besucher, Javascript ermöglichen zu lassen (z.B. eine Intranet Anwendung, wo du JS benötigen kannst).
Ein anderer Nachteil ist die Tatsache, daß er Bookmarks bricht. Leute werden nicht bookmarken deine Seiten, wenn es irgendeinen dynamischen Inhalt innen dort gibt. Aber, wenn du eine PHP Anwendung (und nicht eine PHP Web site) verursachst, dann sind Bookmarks vermutlich nicht irgendwie sehr nützlich.
Zusammenfassung
Da ich dich gezeigt habe mit zwei sehr einfachen Beispielen, ist es völlig möglich, PHP Indexe durchzuführen, ohne zu müssen, die Seite zu erneuern. Ich schlage vor, daß du mehr über den XML HTTP Antrag-Gegenstand liest (http://jibbering.com/2002/4/httprequest.html) und seine Fähigkeiten.
Die Sachen, die du tun kannst, sind grenzenlos. Z.B. könntest du ein extrem ordentliches Seiteneinteilungs-System verursachen, das die Neuladung nicht an allen erfordert. Oder du könntest ein GUI für deine PHP Anwendung herstellen, die genau wie Windows XP sich benimmt. An sie einfach denken!
Bewußt zwar sein, daß Javascript ermöglicht werden muß, damit dieses arbeitet. Ohne Javascript ist dieses vollständig unbrauchbar. Stellen so dein Besucherunterstützungsjavascript sicher oder verursachen eine NichtJavascript Version außerdem.
Article Source: http://www.articleset.com

You are welcome to publish or reprint this article free of charge, provided:
- you include the entire article, unchanged, including the "About The Author" box
- all hyperlinks remain active, including the bottom ArticleSet.com link (does not apply to print publications)
- you agree not to hold the authors nor ArticleSet.com liable for any loss profits, expenses, or any other damages resulting from the use or misuse of articles published on this website