[Jquery/PHP] Nur neue Einträge laden

27o8

abgemeldet
2 Mai 2006
9.028
933
Hi,
möchte mit jquery neue Einträge in einer Chatbox laden damit nicht immer alles doppelt und dreifach geladen wird, sondern nur das was neu ist. Doch wie stelle ich nun fest was neu ist?

Aktuell habe ich es so, dass ich in der php Datei die zuletzt aufgerufene ID in der Session speichere und bei erneutem Aufrufe nur welche Anzeige, welche größer als die ID sind. Hier ist das Problem wenn man 2 Fenster geöffnet hat fehlen in Fenster 2 die Nachrichten.

So dann kam mir die Idee dem Fenster eine ID zugeben welche mit übergeben wird wo ich dann z.B. $_SESSION['fenster2'] nutze für die höchste ID in Fenster 2, somit sollte ja dann überall alles angezeigt werden? :think:

Aber gibt bestimmt noch eine bessere Lösung, welche ich vergessen habe. Jemand eine Idee? :)
 
Wie wärs, wenn du die ID nicht in ner Session speicherst, sondern an den Client überträgst und dann beim Ajax-Request die ID mitschickst? ;-)
 
Hatte vor kurzem eine ähnliche Sache. Ich würde es so machen:

HTML:
<div id="chatbox">
  <div class="post" id="post-1">Blablub</div>
  <div class="post" id="post-2">Lorem ipsum</div>
  <!-- deleted posts -->
  <div class="post" id="post-87">foo</div>
</div>

PHP:
var lastID = $('#chatbox div.post:last-child').attr('id').replace('post-', '');

So werden alle Chatfenster die gleichen Inhalte haben. Außerdem hat die Lösung den Vorteil, dass du einen recht unkomplizierten Post-Nachlade-Code hast.

Greetz

paddya
 
Zuletzt bearbeitet:
Paddya hat's eigentlich schon sehr schoen geregelt, ich haette timestamps vom letzten update verwendet, aber das prinzip is dasselbe ^^