Calcule la décélération du curseur pour prédire quand un lien est sur le point d'être cliqué.
$ npm install --save futurelink
var futurelink = require ( 'futurelink' ) ;
futurelink ( {
links : document . querySelectorAll ( 'a' ) ,
future : function ( link ) {
// `link` is probably going to be clicked soon
// Preload some images, if you can!
} ,
// These also exist, but aren't usually needed:
hover : function ( link ) { } ,
click : function ( link ) { }
} )
Passez-lui un tableau ou une NodeList d'éléments, et lorsque le curseur s'approche de l'un de ces éléments, le future
rappel sera déclenché avec l'élément en question comme argument. future
ne sera appelé qu’une seule fois par élément.
Les liens sont lus directement à partir de l'objet options, donc si vous souhaitez mettre à jour les liens surveillés (par exemple, parce que vous souhaitez surveiller certains éléments nouvellement ajoutés au DOM), vous pouvez faire ceci :
var options = {
links : document . querySelectorAll ( 'a' ) ,
future : function ( link ) { }
} ;
futurelink ( options ) ;
router . afterEach ( function ( ) {
options . links = document . querySelectorAll ( 'a' ) ;
} ) ;
futurelink n'examinera pas les liens qui contiennent une classe no-futurelink
ou l'un de leurs éléments parents. Il examine également uniquement les liens internes.
< div class =" no-futurelink " >
< a href =" /foo-bar " > Futurelink won't tell you about this link </ a >
</ div >
< a href =" /bar-foo " class =" no-futurelink " > It won't tell you about this one either </ a >
Si vous souhaitez supprimer complètement futurelink, il renvoie une fonction teardown
que vous pouvez appeler :
var teardown = futurelink ( options ) ;
// Later…
teardown ( ) ;
Désormais, les écouteurs d'événements seront supprimés et futurelink ne vous dira plus quand les liens sont sur le point d'être cliqués.
Sur samknows.com, il accélère le chargement des pages non initiales de 870 ms en moyenne.
Vous pouvez voir un article à ce sujet sur SamKnows Medium.
Publié sous licence MIT.