• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Widget nach X Sekunde neu laden...

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Huhu!

Ich baue mir grad ein Widget mit 'Widgetarium'.

Ich kenne mich mit JS und CSS aus aber in den Widgets scheint es alles ein bissl anders zu funktionieren. :(

Ich habe eine Datei in meinem Forum welches beim Aufruf ein Array generiert. Diese Datei binde ich im Widget ein und nutze eine Funktion um den Inhalt des Arrays in einen Layer zu schreiben.

Dies funktioniert ohne Probleme.. Wenn ich das Widget neu installiere dann lädt er alle aktuellen Theman und zeigt diese an.

Nun möchte ich aber, dass er auch im Hintergrund alle X Sekunden das Array neu in diesen Layer schreibt damit ich immer die aktuellsten Themen sehen kann.


Ich habe nun schon sooo viele Möglichkeiten durch.. Es müsste funktionieren, das tut es aber nicht. Den Reload versuche ich wie folgt:

Code:
timeout=setTimeout("showData()",20);
showData() ist eine Funktion:
Code:
function showData() {
var data = '';
            for (var i = 0; i < threads.length; i++)
            {
                            data = '<li><a href="http://localhost/showthread.php?t=' + threads[i]['threadid'] + '">' + threads[i]['title'] + '</a> <em>' + threads[i]['threaddate'] + ' - ' + threads[i]['threadtime'] + ' von ' + threads[i]['poster'] + '</em></li>' + data;
            }
            document.getElementById('liste').innerHTML = data;
            }

Wie gesagt, die Funktion funktioniert.. Wenn ich das Widget das erste mal lade dann wird auch alles korrekt angezeigt.


Wie verklickere ich nun diesem Teil, dass ich die Anzeige gerne alle X Sekunden aktualisiert haben möchte?

***************

So, ich habe zumindest den Denkfehler gefunden :D

Da das Widget nicht neu lädt, lädt er auch nie die neue Datei mit dem neuen Array ein.. Das heisst dann aber, dass er nie die neuen Daten erhalten wird.. Naja gut, muss ich es mit Ajax machen. :(
 

FirePot

Gast
Ich habe auch schon einige Widgets gestrickt... am einfachsten ist du machst es so: im body tag fügst du "onLoad='setup();'" ein. dann machst du eine funktion setup:

function setup () {
//Setup dinge, die zu regeln sind...
update();
}


funtion update () {
//Daten update
setTimeout("update()", 1000);
}

Anstelle von 1000 setz einfach deine Zahl ein. Hoffe das hilft dir!

Nelson
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Danke, sehr guter Tipp! Ich habe es nun komplizierter gemacht. :D

Das Apfeltalk-Widget macht es vor.. Alle <15 Minuten einen Reload machen ist eh schwachsinnig.. Belastet meinen Server und so fix sind meine Mitglieder nicht. ;)
 

FirePot

Gast
ok, freu mich dir geholfen zu haben ;). poste dein widget mal, wenn es fertig ist ;)