Frage : PHP/AJAX: Prüfung, zum zu sehen, wenn geladener Inhalt seit letztem Mal geändert hat

Ich habe eine Tabelle, die dynamisch using AJAX geladen wird. Sie überprüft im Allgemeinen, um zu sehen, wenn eine neue Akte geladen worden ist. Wenn es eine neue Akte gibt, ist das
, das die Tabelle anzeigt, modernisiert. Ich verwende Javascript, um zu sehen, wenn es einen Unterschied zwischen dem Inhalt im
und dem Inhalt von PHP gibt. Es überprüft alle 2 Sekunden. Wenn es einen Unterschied gibt, hat er die gesamte neue Eintragung geladen und hervorhebt. Simple.

Now dieses bearbeitet normalerweise total feines, als ich einfaches „

“ echo'ing. $row->file. „„.anchor („admin/Akte“. $row->id. “ /complete“, „schließen“, „title= " abschließen“ ") ab. „„.anchor („admin/Akte“. $row->id. “ /delete“, „Löschung“, „title= " Löschung-Akte“ "). „

“;

But, wenn ich eine Tabelle widerhalle, scheint es zu denken, dass es einen Unterschied gibt, selbst wenn es nicht gibt. So alle zwei Sekunden, ist der Höhepunkteffekt aktiviert. Aber ich kann nicht herausfinden, warum der ist. Warum würde mein einzelnes

arbeiten, aber andererseits, wenn ich eine Tabelle tue, tut es nicht?

Here ist mein Code:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
wenn ($uploads == NULL):
	„KEINE NEUEN ANTRIEBSKRÄFTE“ widerhallen;
sonst:
	„“;
	foreach ($uploads als $row):
		Echo „“ ein;
	endforeach;
	Echo „
Dateiname UploadedDetailsDescriptionStatus
email. “ „> '. $row->name. „
“. $row->company. „
“. $row->phone. „
“. $row->description. „
“; endif;

Antwort : PHP/AJAX: Prüfung, zum zu sehen, wenn geladener Inhalt seit letztem Mal geändert hat

Das Vergleichen gegen das HTML des Browsers kann hässlich sein, weil der Browser den weißen Raum oder die Umbauten in den Daten manipulieren kann, die am Punkt zurückgebracht werden, dass es den DOM hinzugefügt wird.

Stattdessen können Sie den vorhergehenden Wert in einem variablen Javascript speichern und gegen es vergleichen wünschen.  Da dieses ist, sollte der gleiche Wert, dem dann es zurückgebracht wurde, keine Formatierungsänderungen ihm geschehen lassen.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
script type= " Text/Javascript " >
$ (Dokument) .ready (Funktion ()
{
	$.ajaxSetup ({Pufferspeicher: falsch});  
	
	var loadUrl = "";  

	$ („#result“) .load (loadUrl);
	
        var cachedResult = "";
	var refreshId = setInterval (Funktion () {
		$.get (loadUrl, Funktion (Resultat) {
			wenn (Resultat! =  cachedResult)
			{
				$ („#result“) .html (Resultat);
				$ („#result“) .effect („Höhepunkt“, {}, 2000);
                                cachedResult = Resultat;
			}
		});
	}, 5000);
});  

Weitere Lösungen  
 
programming4us programming4us