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):
Das (von mir verwendete) Original-script ist ebenfalls im Anhang zu finden.
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;i < (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);
}
}