php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-12-2008, 09:15
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard Preloder im Mainbereich

Hallo,

ich sehe es neuerdings immer öffter das in Webseite eine Art Preeloader arbeitet.

Sprich alles was schnell aufgebaut wird wie Kopf und navi, ist sofort da und das andere zb. der Mainbereicht der etwas länger braucht läd mit ein (ich denke) rotierenden gif welches für knapp eine sekunde zu sehen ist... und dann erst erscheid der mainbereich fertig.

Aber wie geht das?
Ist es in PHP nicht so das von oben nach unten alles gelesen wurd und dann zum Schluß ausgegeben wird?

Der Aufbau einer PHP Datei sieht bei mir meist in etwa so aus:

PHP-Code:
<?php

$seite 
'<div>das ist der header</div>';
$seite .= '<div style="float:left">das ist die navi'>;
$seite .= '<div>das ist der mainbereich'>;
$seite .= '<div style="clear:both">das ist der footer'>;

echo 
$seite;

?>
Aber wenn ich es so mache wird ja erst alles in einer Variable gespeichert und am ende ausgegeben oder sollte ich ab und ann ein echo einfügen das die seite in mehrreren Abschnitten angezeigt wird?

Beispiel:

PHP-Code:
<?php

$seite 
'<div>das ist der header</div>';
$seite .= '<div style="float:left">das ist die navi'>;
echo 
$seite;
$seite '<div>das ist der mainbereich'>;
$seite .= '<div style="clear:both">das ist der footer'>;

echo 
$seite;

?>
Ich denke wenn ich es mit dem echo mache wird sicher der schnelle header und die navi angezeigt und der mainbereich (wo zum beispiel eine externe seite gecrawlt wird) kommt dann später nach.
Aber was ist dann mit dem Footer? Der wird ja dann auch erst angezeigt wenn der Mainbereich fertig ist bzw. der includete crawler fertig ist.

Oder mache ich das falsch?

Gruß Nordin
Mit Zitat antworten
  #2 (permalink)  
Alt 13-12-2008, 11:01
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

das sieht eher nach ajax aus das auf den webseiten läuft.

wenn ich meine private seite so angucke verhält sie sich genauso wie du beschrieben hast.
den content den ich mit der ajax technik lade brauch ein wenig länger als der rest
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #3 (permalink)  
Alt 13-12-2008, 12:30
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

hmm ok.
Mit ajax hatte ich noch nie zu tun...
Muss ich mich wohl mal mit auseinander setzten.
Mit Zitat antworten
  #4 (permalink)  
Alt 15-12-2008, 18:24
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Soo jetzt hab ich mich mal mit ajax beschäftigt.

Das ergibniss ist ein simples script....
Code:
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>Ajax Beispiel 001</title>
  <script type="text/javascript">
  <!--
	var request = false;

	// Request senden
	function setRequest(id) {
		// Request erzeugen
		if (window.XMLHttpRequest) {
			request = new XMLHttpRequest(); // Mozilla, Safari, Opera
		} else if (window.ActiveXObject) {
			try {
				request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
			} catch (e) {
				try {
					request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
				} catch (e) {}
			}
		}
		// überprüfen, ob Request erzeugt wurde
		if (!request) {
			alert("Kann keine XMLHTTP-Instanz erzeugen");
			return false;
		} else {
			var url = "post.php";
			// Request öffnen
			request.open('post', url, true);
			// Requestheader senden
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			// Request senden
			var nickname = document.getElementById(id).value;
			request.send('name='+nickname);
			// Request auswerten
			request.onreadystatechange = interpretRequest;
		}
	}

	// Request auswerten
	function interpretRequest() {
		switch (request.readyState) {
			// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
			case 4:
				if (request.status != 200) {
					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
				} else {
					var content = request.responseText;
					// den Inhalt des Requests in das <div> schreiben
					document.getElementById('content').innerHTML = content;
				}
				break;
			default:
				break;
		}
	}
  //-->
  </script>
 </head>
 <body>
 <form action="" method="post">
  <input id="test" type="text" value="" /><input type="button" value="suchen" onclick="javascript:setRequest('test');" /> 
  <div id="content"></div>
</form>
 </body>
</html>
in der post.php steht:

PHP-Code:
<?php

header
('Content-Type: text/html; charset=utf-8');
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0');

sleep(2);

echo 
$_POST['name'];

?>
Das sleep() hab ich drin weil ich probieren wollte wie ich eine Art Preloader einbauen kann ich dachte das ich irgendwie den readyState 1 abrufen kann aber irgendwie wird das nichts

Wie müsste ich das script erweitern?
Das zum Beispiel der Text "bitte warten..." da steht bis der text aus dem inputfeld erscheind?



Gruß Nordin

Geändert von Nordin (15-12-2008 um 18:32 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 15-12-2008, 19:10
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

O hab einen Ansatz hinbekommen:

Habe folgendes
Code:
document.getElementById('content').innerHTML = 'bitte warten...';
nach
Code:
			// Request auswerten 
			request.onreadystatechange = interpretRequest;
eingefügt.

Ist das so korrekt?
Scheind jedenfalls zu funktionieren.
Mit Zitat antworten
  #6 (permalink)  
Alt 15-12-2008, 19:12
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

na einfach den gewünschten Text in dein div packen
PHP-Code:
<div id="content">Bitte warten</div
Mit Zitat antworten
  #7 (permalink)  
Alt 15-12-2008, 21:23
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

ups *g* danke!

// Edit
Und was ist wenn das style des div geändert werden soll?
Mit Zitat antworten
  #8 (permalink)  
Alt 16-12-2008, 08:58
ezkimo
 Registrierter Benutzer
Links : Onlinestatus : ezkimo ist offline
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 279
ezkimo befindet sich auf einem aufstrebenden Ast
ezkimo eine Nachricht über ICQ schicken
Standard

Dann machst Du das über CSS

Code:
document.getElementById('content').className = 'meinNeuerStyle';
oder so:

Code:
document.getElementById('content').style.display = 'block';
Also einfach über die Style Variante ansprechen. Wobei die Vergabe von CSS Klassen sicherlich vorteilhafter ist, wenn es sich um umfangreichere Style Eigenschaften handelt.
__________________
MM Newmedia | MeinBlog
Mit Zitat antworten
  #9 (permalink)  
Alt 16-12-2008, 10:42
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

super! Danke.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:49 Uhr.