• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Problem mit load-content bei scroll-event

Bin mir jetzt nicht ganz sicher was du genau meinst, bei mir in der php datei sieht das ganze jetzt so aus:

HTML:
	$stmt = $db->query('SELECT id, datum, beitrag FROM news ORDER BY id desc LIMIT '.$_GET['start'].', '.$_GET['count']);	


	while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
		$message=$row['beitrag'];
		echo file_get_contents($message);

das $message wird ja in das javacript übermittelt mittels echo (wenn ich das richtig verstanden habe) - und nun müsste ich die ganzen $message im javascript "auffangen" und ebenfalls in einen array packen oder?

@mikdoe:
ja die große unbekannte ... beim zurückgehen macht einfach der startzähler was er will, wie wenn er nicht mehr auf 0 gesetzt würde aber ich weis nicht wie ich dem das "eintrichtern kann".

auf jedenfall DANKE für eure Bemühungen!
 
Zuletzt bearbeitet:
Falsch rum. Die Responste beantwortet immer nur den Request, egal wieviele da drin sind. Den Request müsste man hier aufteilen.
Aber mal eine generelle Frage: Warum machst du denn das überhaupt zweiteilig? Einmal die Seite und dann noch das Ajax?

P.S.: muss jetzt mal weg. Bis später! Julian hilft dir bestimmt auch weiter, sofern er Zeit hat.
 
wie meinst du zweiteilig? - meinst du zuerst in php und dan in java?
naja ich kann mir schon alles in php zusammensammeln - würd für die html dateien die ich sammle nicht mal ne mysql datenbank benötigen (da alles in eimenm Ordner abgelegt) ABER ich wüsste nicht wie ich dan das mit dem "endless scroll" hinbringe oder geht das doch??
Wenn das geht würde das alles um einiges einfacher werden ;)

ich muss ehrlich sagen hab eben aus dem internet dieses demo gesehen und wollte es dan anpassen.
 
Achso, das ist quasi eine Endlosliste mit Einträgen? Ja, dann würde ich unbedingt pro Eintrag einen Request machen bis die Seite voll ist. Und das Ganze würde ich an das onscroll Event binden.
 
Servus!
ja genau es soll eine Endlosliste mit Einträgen werden ;)
Wie meinst du das mit Request genau?

Ich hab mir das ganze nochmal ein wenig genauer angesehen und hab ne neue theroie zur "Unbekannten".
Wenn ich die Seite aufrufe funktioniert das ganze - da ja am Anfang des scripts die document.ready function aufgerufen wird und dort der Startzähler auf NULL gesetzt wird.
Wenn ich nun von einer anderen Seite mit dem "zurück-button" zur Startseite gelande wird zuerst auf die Stelle gescrollt wo ich die Seite verlassen habe und DANN wird ja erst "document.ready" ausgeführt d.h. Beiträge da wie gewohnt und dan wird das ganze nochmal ausgeführt, da ja nun schon Beiträge da sind werden diese überschrieben bzw. falsch gezählt.

Könnte das der Fehler sein? - wenn ja wie kann ich das umgehen?

EDIT: habs getestet, die document.ready function wird auch beim "zurückgehen" ausgeführt, es ist wirklich das Problem dass beim zurückgehen auf die letzt gemerkte Stelle gescrollt wird und durch das automatische runterscrollen das script nicht richtig ausgeführt wird - keine Ahnung warum.

EDIT: hab den Fehler jetzt eingrenzen können! --> ich hab ne "setTimeout(function()" mit 3 sekunden eingefügt und siehe da es funktioniert die Beiträge werden schön nacheinander geladen auch wenn ich den "zurück-button" nutze! - es wird einfach zu schnell nachgeladen da die Beiträge etwas größer sind dich ich reinlade!
Das mit der timeoutfunction ist natürlich nicht optimal hängt ja vom jeweiligen Besucher und deren internetgeschwindigkeit ab wie lange diese Zeit sein soll - gibts da vielleicht was dass man abfragen kann ob der letzte Beitrag (egal wie groß) fertig geladen hat?
Das sollte das Problem sauber beheben.
 
Zuletzt bearbeitet:
keiner eine Idee wie man abfragen kann ob der letzte Beitrag (nach dem append) vollständig geladen wurde?
Ich denke das wäre des rätsels-lösung ;)

Danke!
 
Hallo,

Naja wenni ch ne Zeitverzögerung eingebe werden die html-seiten schön nacheinander angereiht - jedoch ist das mit der Zeitverzögerung nicht unbedingt schön bzw. kommt es auch auf die internetgeschwindigkeit des nutzers an wie schnell diese html-Seiten geladen werden.
Darum hab ich gedacht vielleicht könnte man ja irgendie abfragen ob das html fertig geladen wurde BEVOR der nächste scrollevent ausgeführt wird.
Den genau das scheint das Problem zu sein was ich habe nach dem "zurückgehen" habe.

Ich hoffe du verstehst wie ich das meine ;)
 
Also ich hab jetzt das Thema bisher nicht verfolgt, aber du müsstest das doch einfach nach folgender Stelle einfügen können:
Code:
$.ajax({ 
        type: 'get', 
        url: 'content.php', 
        async: false, 
        data: { start : start, count : count },
        success: function (html){ 
            if(html){ 
                $('.container').append(html);
                //appended, do something
 
Servus,

ja an der Stelle genau, nur weis ich nicht WIE ich das abfragen kann bzw. obs dafür überhaupt eine Funktion gibt?
 
Also nachdem du mit $('.container').append(html) das HTML angehängt hast, ist es ja auch fertig geladen. Danach kannst du beispielsweise so etwas in der Art:
Code:
$.ajax({ 
        type: 'get', 
        url: 'content.php', 
        async: false, 
        data: { start : start, count : count },
        success: function (html){ 
            if(html){ 
                $('.container').append(html);
                appendedReady();
...
function appendedReady(){
  alert("neues HTML angehängt");
  //was auch immer noch durchgeführt werden soll
}
 
erstmal Danke für die Antwort - aber irgendwie bekomm ich das nicht hin - das appendedReady wird nicht ausgeführt.
Muss ich nochmal genauer testen.
 
So hier bin ich nochmal ;)

Also ich hab jetzt noch folgendes getestet:
Ich hab wie shcon zuvor eine "settimeout function" über das laden der Beiträge geworfen aber es reicht schon 1 aus entspricht 1ms --> fällt nicht auf und es funktioniert - ich kann damit leben aber warum ist das so? kann mir das nicht erklären...

Hab zum Versuch die timeoutfunction weggelassen und eine sehr sehr langsame internet verbindung simuliert --> sobald ich scrolle wird immer der selbe Beitrag geladen komtm gar nicht mehr nach.

Hat jemand eine Erklärung dafür dass dan schon 1ms verzögerung ausreicht?

Danke nochmal an alle für die Hilfen!
 
Zurück
Oben