Schönen guten Tag.
Folgende situation: angenommen es gibt eine Seite, wo ein guter Mensch lauter nützliche PDF-Dokumente online stellt, und gerne mitzählen möchte, was wie oft angeclickt wird. Problem: keinerlei unterstützung von serverseitigen scripts, kein Tomcat, absolut nichts in dieser Richtung.
Einen einfachen Counter einzurichten ist ja an sich nichts kompliziertes. Die gibts im www wie sand am meer. Problem: die schicken im wesentlichen ein Bild. Und zählen jedes mal, wie oft das Bild/script angefordert wurde. Ich möchte aber nicht zählen, wie oft das Bild angeguggt wurde, sondern wie oft die PDF's aufgerufen wurden.
Da dachte ich mir zunächst: kein Ding. Hab nen Servlet geschrieben, das unbegrenzt viele einzelne ereignisse von einer Seite mitzählt, in einer ordentlichen XML-Datei abspeichert, und bei bedarf die ganze XML-Tabelle wieder an den client schickt. Auf der client Seite habe ich einen kleinen JavaScript geschrieben, das XMLHttpRequest erstellt, und versucht, eine Anfrage (mit der id des zu zählenden Ereignisses) an diesen Servlet zu schicken, dafür die aktialisierte XML-daten zu bekommen, und im browser für jedes Dokument die richtige Anzahl der Zugriffe hinzuschreiben (sowas könnte man fast "Ajax" schimpfen, wäre es nicht so primitiv).
Problem: Bilder/scripts darf man von externen Servern ja laden (deswegen funktionieren herkömmliche Counter) aber man darf nicht mit diesem XMLHttpRequest verbindung zu einem anderen Server aufbauen:
es erscheint die Exception "Access to restricted URI denied".
Ich könnte mir zwar vorstellen, dass ich jedes mal einen Script von meinem Server lade, der die Angaben im browser updated, und dass ich für jedes dokument eine zwischenseite einbaue, das zB. ein 1x1 px großes Bild lädt, und erst dann den Benutzer zum eigentlichen Dokument weiterleitet. Das wäre aber ein Riesenumweg, und statt dem schönen XML wäre das alles äußerst hässlich.
Gibt es denn eine halbwegs elegante Methode, wie ich denn jetzt solche Clickereignisse Zähle?
Danke für Anregungen.
greetz, 0x7F800000