AJAX shoutbox: refresh rate für inaktive Benutzer ändern?

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

  • AJAX shoutbox: refresh rate für inaktive Benutzer ändern?

    Hi.

    Ich benutze in meinem Forum eine für phpBB2 modifizierte AJAX shoutbox. Leider ist standardmäßig keine automatische Erhöhung der refresh rate für inaktive Benutzer vorgesehen.

    In einem leicht veränderten script auf einer anderen Seite hab ich jedoch ein paar Zeilen entdeckt, die die gewünschte Erhöhung bewirken sollten. Leider führte - in Ermangelung an JavaScript-Kenntnissen - mein copy&paste-Ansatz zu keinem Erfolg.

    Wäre nett, wenn ihr mir helfen könntet!

    Die relevanten Zeilen aus dem modifizierten script (siehe Anhang "mod_script.txt" für das komplette script):
    PHP-Code:
    // time
    var now = new Date();
    var 
    time Math.round(now.getTime()/1000);

    // ...

    function Time() {
        
    now = new Date();
        return 
    Math.round(now.getTime()/1000);
    }

    function 
    resetTime() {
        
    time Time();
        
    refresh_time 4000;
    }

    // ...

    //deals with the servers' reply to requesting new content
    function handlehHttpReceiveChat() {
        if (
    httpReceiveChat.readyState == 4) {
            
    // We didn't timeout 
            
    clearTimeout(receiveTimeout);
            
    results httpReceiveChat.responseText.split('---'); //the fields are seperated by ---
            //alert(results);
            
    if (results.length 2) {
                
    // Check that the last message wasn't printed before.
                
    if (lastID results[results.length-5]) {
                    
    // Goes through the result one message at a time
                    
    for (i=0;< (results.length-1);i=i+5) { 
                        
    // Insert the new content into the page
    // wird in dem Original-Script anders gelöst, siehe "// Initiates the first data query" & "// Add content"
                        
    if (lastID results[i+1]) {
                            
    insertNewContent(results[i+2],results[i+3],results[i+4] ,lastID); 
                            
    resetTime();
                        }
                    }
                    
    lastID results[results.length-5];
                }
            }
            else {
                
    // no new comment since..
                // 60 seconds
                
    if ( refresh_time == 4000 & ((time 60) < Time()) ) {
                    
    // set refresh to 10 seconds
                    
    refresh_time 10000;
                }
                
    // 5 minutes
                
    else if ( refresh_time == 10000 & ((time 300) < Time()) ) {
                    
    // set refresh to 30 seconds
                    
    refresh_time 30000;
                }
                
    // 30 minutes
                
    else if ( refresh_time == 30000 & ((time 1800) < Time()) ) {
                    
    // set refresh to 2 minutes
                    
    refresh_time 120000;
                }
                
    // 60 minutes
                
    else if ( refresh_time == 120000 & ((time 3600) < Time()) ) {
                    
    // set refresh to 5 minutes
                    
    refresh_time 300000;
                }
            }
            
    setTimeout('receiveChatText();'refresh_time);
        }

    Das (von mir verwendete) Original-script ist ebenfalls im Anhang zu finden.
    Angehängte Dateien
Lädt...
X