Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Inhalte nachladen ohne Ajax

  1. #1
    glaras
    Gast

    Inhalte nachladen ohne Ajax

    Hallo,

    ich habe ein Webseite, die Anlagendaten visualisiert. Die HTML-Dateien werden auf dem Server mit einem Perl-Skript generiert und geändert.

    Die Inhalte lade ich moment per Javascript nach. Jedoch wird immer die komplette Seite nachgeladen. Auch statische Elemente, was ich gerne vermeiden möchte.

    Ist es möglich einzelne Teile (divs) per Javascript nachzuladen? Ich möchte nur ungern auf Ajax zurückgreifen, weil ich einen minimalistischen Webserver verwende. Mir würde es reichen wenn Javascript nur die HTML-Datei nachläd (ohne eingebundene Bilder).

    Kann man das mit Javascript umsetzen?

    Hier meine aktuelle Variante:
    PHP-Code:
      <script>
    timeSlap=// sekunden
    reloading=function()
    {
        
    setTimeout("reloading()",1000);

        
    status=timeSlap+" sekunden bis zum reload";
        if(
    timeSlap>0timeSlap--;
        else 
    location.reload();
    }
    </script>
    <body onload="reloading()"> 

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    was du suchst ist ajax und hat nichts mit dem webserver zu tun.
    der Webserver braucht dafür nichts besonderes unterstützen.

  3. #3
    glaras
    Gast
    Ich habe jetzt genau das was ich brauche. Jedoch habe ich nun das Problem das egal welcher Browser nach kurzer Zeit 100% CPU-Last verursacht. Woran könnte das liegen?
    PHP-Code:
    <html>
    <
    body>
    <
    script type="text/javascript">
    function 
    Ajax(){
    var 
    xmlHttp;
        try{    
            
    xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
        
    }catch (e){
            try{
                
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
            
    }catch (e){
                try{
                    
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }catch (
    e){
                    
    alert("No AJAX!?");
                    return 
    false;
                }
            }
        }
        
    xmlHttp.onreadystatechange=function(){
            
    document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
            
    setTimeout('Ajax()',2000);
        }
        
    xmlHttp.open("GET","text.txt",true);
        
    xmlHttp.send(null); 
    }
    window.onload=function(){
        
    setTimeout('Ajax()',2000);
    }
    </script>
    <div id = "elsewhat">shouldn't flicker</div>
    <div id="ReloadThis">HEY</div>
    </body>
    </html> 

  4. #4
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    onreadystatechange wird während eines ajax requests öfter aufgerufen.
    Du musst auch noch den readyState deines Objekts testen, der ist bei
    einer vollständigen Ladung 4. Erst dann darfst du Ajax() erneut aufrugen (über das Timeout).
    In deinem Fall wird setTimeout("Ajax()",2000) mehrmals pro Ajax request aufgerufen, was zu einem exponentionellen wachstum führt und damit zu 100% CPU auslastung nach best. zeit. Hast du das Problem verstanden?

  5. #5
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Wie msi schon geschrieben hat ist onreadystatechange eine Methode die meherer Parameter abfängt. Dein Code ist also unvollständig!
    PHP-Code:
     ...
     var 
    abfrage = function()
     {
       switch( 
    xmlHttp.readyState ) {
          
    // Hier die case Operatoren definieren, siehe Dokumentation xmlHttp.status und getResponseHeader.
       
    }
     }
     ...
     
    xmlHttp.onreadystatechangeabfrage;
     ... 
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •