Letzte Kurzmitteilung - nicht sichtbar
Du bist nicht Berechtigt die Kurzmitteilungen zu sehen.
 
Informatik-Kfm
07 September 2010, 03:16:06 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
News:
 
   Übersicht   Hilfe Suche Kalender Einloggen Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: PHP Seite lädt noch obwohl schon alle angezeigt wird???  (Gelesen 1184 mal)
LALILU
Einfingertipper
*
Offline Offline

Geschlecht: Männlich
Beiträge: 15



Profil anzeigen
« am: 25 November 2009, 10:04:34 »

Hallöchen Ihr Lieben,

jetzt schreib ich auch mal was hier :-)
Ich hoffe ihr könnt mir irgendwie helfen, oder habt ne Idee woran sowetwas liegen könnte.

Ich habe eine PHP-Seite die auf eine mySQL-Datenbank zugreift. Soweit alles gut und schön.
Das Problem ist, dass die Seite noch "lädt" obwohl schon alles fertig angezeigt wird.

Ich öffne quasi eine Seite auf der mir ein paar Daten aus der DB ausgegeben werden.
Dann baut die Seite sich auf und ist dann auch komplett sichtbar, trotzdem sieht man unten im Browser, dass der Ladebalken noch nicht 100% fertig ist. Es dauert dann noch ca. 1 Sekunde bis die Seite fertig geladen wird.

Das kann ziemlich nervig sein. Denn wenn man in dieser 1 Sekunde schon am Scrollen ist, springt der Browser automatisch wieder nach oben wenn der Ladebalken quasi fertig ist.

Hatte von euch schon jemand das selbe Problem und eine Lösung gefunden?

Grüße
Armin
Gespeichert
Informatik-Kfm
« am: 25 November 2009, 10:04:34 »

 Gespeichert
Daywalker
Administrator
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5793


Carpe Noctem - Nutze die Nacht


Profil anzeigen WWW
« Antworten #1 am: 25 November 2009, 11:05:45 »

Hi,

schliesst du die DB Connection nach dem du die Abfrage beendet hast?
 
Beispiel:
Code:
$db = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
...
mysql_close($db)
Gespeichert

Gruss Thorsten (Daywalker)
Webmaster der Informatik-kfm.de
LALILU
Einfingertipper
*
Offline Offline

Geschlecht: Männlich
Beiträge: 15



Profil anzeigen
« Antworten #2 am: 25 November 2009, 11:37:17 »

Hi Daywalker,

au mann!! Danke für die Antwort. Da hätt ich auch wirklich selbst drauf kommen können!!! Vielen vielen vielen lieben Dank! :-) Genau das war das Problem.

Grüße
Armin
Gespeichert
LALILU
Einfingertipper
*
Offline Offline

Geschlecht: Männlich
Beiträge: 15



Profil anzeigen
« Antworten #3 am: 25 November 2009, 12:01:28 »

Nein. Es sah wohl besser aus als es war.
Das mit mysql_close() war wohl doch nicht das Problem.

Es tritt auch nicht bei jedem Seitenaufbau auf. Wohl nur wenn sich im SQL-String viel ändert.
Also wenn sich etwas bei "LIMIT 0,30" ändert oder sich viele Werte im WHERE-Statement ändern.
Scheint wohl an der DB selbst zu liegen.................

Hat jemand ne Idee?
Gespeichert
Daywalker
Administrator
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5793


Carpe Noctem - Nutze die Nacht


Profil anzeigen WWW
« Antworten #4 am: 26 November 2009, 12:23:39 »

Hi,

kannst du mal den Code posten? So ist es schwer zu erraten was es sein könnte.
Gespeichert

Gruss Thorsten (Daywalker)
Webmaster der Informatik-kfm.de
LALILU
Einfingertipper
*
Offline Offline

Geschlecht: Männlich
Beiträge: 15



Profil anzeigen
« Antworten #5 am: 26 November 2009, 13:29:29 »

Hier der Code:
Code:
<?php
  include_once( 
"includes/inc.func.einwahl.php" ) ;
include_once( "includes/inc.func.session.php" ) ;
session_start();

  
$sprache = Array("Deutsch");

if( isset( $_POST['submit'] ) ){
$fehlermsg "" ;
if( $_POST['benutzer'] == "" ){
if ($_POST['sprache'] == "Deutsch"){
        
$fehlermsg .= "Login: Bitte geben Sie einen Benutzernamen ein!<br />" ;
      } elseif (
$_POST['sprache'] == "English") {
  $fehlermsg .= "Login: Please enter your user name!<br />" ;
}
}

if( $_POST['passwort'] == ""){
      if (
$_POST['sprache'] == "Deutsch"){
        
$fehlermsg .= "Passwort: Bitte geben Sie ein Passwort ein!<br />" ;
      } elseif (
$_POST['sprache'] == "English") {
  $fehlermsg .= "Password: Please enter your password!<br />" ;
}
}

if( $fehlermsg != "" ){
    
unset( $_POST['submit'] ) ;
    }

    if( 
$fehlermsg == "" ){
   $benutzer $_POST['benutzer'];
    $passwort $_POST['passwort'];
    $db einwahlPEAR();
    }

 
if(loginCheckIndex($benutzer$passwort$db) == true){
    
$_SESSION['login'] = "ja";
      
$_SESSION['user'] = $benutzer;
      
$_SESSION['passwort'] = $passwort;
      
$_SESSION['rd'] = loginRD($benutzer$passwort);
      
$db->disconnect();
      
Header("Location:projekte.php") ;
    break ;
    }else{
    
if ($_POST['sprache'] == "Deutsch"){
      
$fehlermsg "Benutzername oder Passwort sind inkorrekt oder stimmen nicht überein.<br />Bitte versuchen Sie es erneut.";
      } elseif (
$_POST['sprache'] == "English") {
        
$fehlermsg "Username or password are incorrect or not matching.<br />Please try again.";
      }
      
$db->disconnect();
  
  unset($_POST['submit']) ;
   
}
}
?>

<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form method="post" id="login" action="<?php echo $_SERVER['PHP_SELF'];?>">
  <table style="width: 300px; border: #003366 3px solid; border-collapse: collapse; background-color: #d9d9d9; font-family: Arial; margin-top:50px;" align="center">
    <tr>
    <th style="width: 45%;">
      <img src="images/Peugeotlogo.gif" alt="Peugeot Logo" />
      </th>
      <th align="center" style="width: 55%;">
      <font style="font-size: 20pt;">EVM-Tool 2009</font>
      </th>
</tr>
<?php if($fehlermsg != '') { ?>
<tr>
    <td>
      </td>
      <td>
        <?php echo $fehlermsg;?>
        </td>
      </tr>
<?php ?>
      <tr>
    <td>
      <b>Login:</b>
        </td>
        <td>
        <input name="benutzer" type="text" value="<?php echo $_POST['benutzer'];?>" size="40" />
        </td>
      </tr>
      <tr>
    <td>
      <b>Passwort:</b>
        </td>
        <td>
        <input name="passwort" type="password" value="<?php echo $_POST['passwort'];?>" size="40" />
        </td>
      </tr>
      <tr>
    <td>
      <b>Sprache:</b>
        </td>
      <td>
      <select name="sprache" size="1">
      <?php
        
for ($ii 0$ii count($sprache); $ii++ ) {
           $check $sprache[$ii];
             if ($check == $_POST['sprache']) {
             echo "<option  selected value='$check'>$sprache[$ii]</option>\n";
             } else {
             echo "<option  value='$check'>$sprache[$ii]</option>\n";
             }
           }
         ?>

        </select>
        </td>
      </tr>
      <tr>
    <td>
      </td>
        <td>
        <input type="submit" name="submit" value="Einwählen" />
        </td>
      </tr>
    </table>
</form>
</body>
</html>

Ich habe mir nun mal im FireFox den Firebug geladen. Der sagt, dass die Ereignisse 'load' und 'DOMContentLoaded' so lange brauchen würden.

Außerdem habe ich die Seite auch mal auf einen anderen Webserver geladen. Dort habe ich diese Probleme nicht. Scheint also Serverseitige probleme zu geben.

Sagt jemand von euch das was?

Achso. Es ist ein MS IIS 6.0

Danke :-)
Gespeichert
Daywalker
Administrator
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5793


Carpe Noctem - Nutze die Nacht


Profil anzeigen WWW
« Antworten #6 am: 26 November 2009, 14:13:51 »

Hi,

ich habe leider zur Zeit nicht so viel Zeit um es mir genau anzusehen, aber was mir spontan aufgefallen ist dein session_start.

Das MUSS immer vor allem anderen kommen.

Also

Code:
<?php
session_start
();
...

Probier das mal bitte.
Gespeichert

Gruss Thorsten (Daywalker)
Webmaster der Informatik-kfm.de
LALILU
Einfingertipper
*
Offline Offline

Geschlecht: Männlich
Beiträge: 15



Profil anzeigen
« Antworten #7 am: 26 November 2009, 15:21:04 »

Nein. Das war es leider auch nicht.

Ich glaube mittlerweile wirklich, dass es irgendwo am Server liegt.
Denn wie gesagt, auf einem anderen WEBSpace, auf dem Apache läuft, geht alles wunderbar.

Danke für deine Antworten :-)
Gespeichert
LALILU
Einfingertipper
*
Offline Offline

Geschlecht: Männlich
Beiträge: 15



Profil anzeigen
« Antworten #8 am: 27 November 2009, 12:19:40 »

Hallo,

ich habe mittlerweile das Problem gefunden.
Der Microsoft IIS-Server gibt leider nicht automatisch die Ausgabegröße des Scriptes im Headerbereich der Seite aus.
Diesen Content-Length-Header muss ich nun manuel im Code angeben.

Hier ein Beispiel:

Code:
//Start der PHP-Datei
session_start();
ob_start();
   
.
//Hier steht dann die Komplette Ausgabe (PHP & HTML)
.

//Das hier steht ganz am Ende der Datei
header('Content-Length: ' . ob_get_length());
ob_end_flush(); 

Jetzt weiß der Browser, nach wieviel Bytes die Seite fertig geladen sein müsste und beendet den Ladevorgang nach dem Wert der aus "ob_get_length()" ausgegeben wurde.

Mensch mensch. Und mit solchen Problemen muss man sich wieder mal nur bei Microsoft rumschlagen.

Liebe Grüße
Armin
Gespeichert
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by SMF 1.1.8 | SMF © 2006, Simple Machines LLC
 


MKPortal M1.1 ©2003-2006 mkportal.it
Seite erstellt in 0.03796 Sekunden mit 15 Datenbank Anfragen