PHP-Timeout durch Reload und Ajax?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-Timeout durch Reload und Ajax?

    Hallo Leute,

    um das Timeout bei aufwendigen PHP-Anwendungen zu umgehen habe ich das bisher über das mehrmalige Aufrufen des Scriptes gelöst. Nur wirkt das in Anwendung nicht gerade professionell.

    PHP-Code:
    if (!isset($_GET['offset']) or empty($_GET['offset'])){
      
    $offset 0;

    else 
    {
      
    $offset $_GET['offset'];
    }

    $f=fopen($input_file,"r");
    if (
    $f===false) die("Error");
    fseek($f,$offset);
    $datensaetze=fgets($f); 
    $fertig=false;

    if (
    $offset<ftell($f))
    {
        
    $offset=ftell($f); 
        
    //Verarbeitung der Zeile  

    else 
    {
      
    $fertig=true;
    }
      
    if (
    $fertig) {
      die(
    "<br>Import beendet.<br>");

    else
    {
      echo 
    "<script =\"javascript\">self.location=\"$PHP_SELF?offset=".$offset."\"</script>";

    Mit Ajax könnte man sich das ja sparen und einen schicken Fortschrittsbalken anzeigen.

    Hat jemand schon einmal ähnliches gemacht und hat einen Codeschnippsel für mich? Leider habe ich von Ajax bisher keinen Plan.

    Besten Dank!

  • #2
    Der Weg ist nicht falsch, ich mache das bei einem Script ebenfalls so, da sich das Timeout nicht ausschalten lässt und die Operation bewusst mehrere Stunden dauert. Jedoch ist dein Code sehr unsauber. Du solltest nicht einfach $PHP_SELF verwenden und auch dafür sorgen, dass $offset auch wirklich immer ein integer ist z.B. durch intval($offset)
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      Hi Benny,

      danke für die Antwort. Deine Tips werde ich befolgen.

      Ich lasse zwar einen Preloader anzeigen (immer neue, einfache HTML-Seite), aber wenn ich das ganze in ein aufwendiges Design packe, dann aktualisiert die Seite bevor sie angezeigt wird. Deshalb dachte ich das mit Ajax lösen zu können.

      Diese Lösung http://www.bongard.net/blog/2007/04/...chrittsbalken/ sah zwar gut aus bricht aber leider nach ca. 20 min. ab.

      Mal schauen ob jemand ne Lösung hat.

      Kommentar

      Lädt...
      X