Wie man setTimeout mit Parametern aufruft

Wer in Javascript programmiert, kennt das Problem vielleicht:

Man möchte  „window.setTimeout( function, timems )“ benutzen, um eine eigene Routine aufzurufen, aber man müßte da mal einen Parameter mitgeben, weil das ganze nicht statisch programmiert ist.

Das geht so :

function Klasse () {
        ...        
       this.timerCheck = function(self) {
            console.debug("timerCheck: "+ Date.now() +" "+ self.timer );
            if ( ( Date.now() - self.timer  ) / 1000 > 20 ) {
                self.close(); 
                return true;;
            }
            window.setTimeout( self.timerCheck.bind(null, self), 1000);
            return false;
        }
       this.andereFunktion = function() {
            ...
            this.timerCheck(this);
            ...
       }
}

Der entscheidende Teil ist das self.timerCheck.bind(null, parameter) . Es ruft die Funktion so auf timerCheck(parameter), statt blanko, wie es jahrelang nötig war.

Damit kann man endlich in Objekten, die Instanziiert werden, mehrere Instanzen einer Timerroutine laufen lassen.

Tracking über Browser API des Batteriestatuses

Wie die Webseite TheHackernews.com heute berichtet, ist es Forschern der Standford University bereits in 2015 gelungen, einen Super-Super-Cookie zu nutzen, in dem sie über die Browser API der mobilen Versionen von Chrome, Opera und Firefox den Batteriestatus abgefragt haben. Durch die Kombination von angezeigter „verbleibender Zeit in Sekunden“ und dem Prozentwert der Ladung, ergeben sich bis zu 14 Millionen Kombinationen, die man Geräten zu ordnen kann.

Steve Engelhard and Arvind Narayanan von der Princeton University, konnten nun in einem Forschungsbericht  zeigen, daß diese Technik bereits von Webseiten zum aktiven Tracken von Benutzern eingesetzt wird.

Zusammen mit anderen Techniken wird es damit immer schwerer dem Online-Tracking zu entgehen. Aber natürlich kann man etwas dagegen tun, denn auch für FireFox Mobile gibt es Noscript!  Ohne Javascript kann man Browser-Api’s nicht abfragen, was dazu führt, daß man nur ohne Javascript surfen muß.

Sollte man jetzt glauben, den Webseitenbetreibern ginge nur ums das reine Tracking dabei, weit gefehlt, daß ist nur zur Verbesserung der Identifikationsrate da, denn Tracking geht über sehr viele Browsermerkmale bereits gut ( mit Javascript).

Den Batteriestatus zu kennen, verleitet Verkäufer jetzt aber dazu, abhängig vom Stand die Preise zu ändern. Der Gedanke: „Der User ist unter Stress, weil seine Batterie bald schlapp macht und daher kauft er jetzt sofort das Erstbeste zum erstbesten Preis. Suchen bei der Konkurrenz kommen wegen des Batteriestandes nicht mehr in Frage. “

Damit könnte der Verkäufer sogar recht haben. Also, was heißt das ? Bei FireFox Javascript abschalten und gleichzeitig eine neue Kampagne starten, diese API zu begraben! Das man Chrome dazu bewegen kann, ist eher unwahrscheinlich. Google lebt ja vom Tracking anderer Leute 😉

Referenzen:

INRIA Privatics Forschungsbericht
Lukas Olejnik Blog
Random Walker – OpenWPM

Quelle: thehackernews.com