11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
j'ai trouvé ce code qui me permet de rediriger une page HTML vers une autre en cas d'inactivité souris.
Le souci c'est que ce script vérifie très souvent mon état souris et donc ma réactivité de surf sur le site en est réduite et je dois également recopier ce script sur chaque page HTML.
function init()
    {
        var timeOut = setTimeout(function (){window.location = 'http://www.google.fr'}, 5000); //redirection au bout de 5 secondes
        document.onmousemove = function()
        {
            window.clearTimeout(timeOut);
            console.log('....');
            init();
        }
.
j'ai deux questions concernant ce code:
1° est-il possible d'avoir une variable qui serait transposée entre mes pages html?
je m'explique: le code renvoi à une page en cas d'inactivité de souris. Est il possible de ne pas recopier à chaque fois ce code dans chaque page HTML mais d'utiliser un code dans ma page index.html qui serait appliqué tout de même aux autres pages HTML?

2°le code fonctionne bien, mais la réactivité du surf en est ralentie du fait du test du bouger de souris. est-il possible dans ce script d'ajouter quelques choses qui dirait de ne tester le mouvement de souris que toutes les secondes et non toutes les x milli secondes (si vous connaissez la fréquence à laquelle le script est réinterprété je veux bien la connaître)

Je vous remercie tous pour votre aide, je débute en programmation java et mon patron me demande d’alléger le temps de réaction du site et également de ne pas avoir à recopier ce code sur chaque page html mais de ne l'avoir que sur une page ou il serait également interprété par les autres

Sébastien
ET que fais-tu des utilisateurs
1 - qui naviguent au clavier et sans souris, voire en ligne de commande
2 - qui surfent sur un téléphone ou une tablette tactile, et qui, par définition, n'ont de souris qu'au moment très précis où quelque chose est cliqué
3 - qui font 3 choses en même temps, qui ont 12 onglets ouverts et 7 fenêtres; et donc que leur souris se trouve ailleurs hors contrôle au moins 90% du temps

Installe seulement ce script, et tu es sûr qu'il n'y aura plus de visiteurs sur ton site.

Honnêtement, je ne vois pas d'utilisation utile d'un tel script; sauf pour faire de la collecte d'information de comportement utilisateur / d'user friendlyness / ergonomie / etc. auquel cas une redirection sera à coup sûr tout sauf la chose à faire. Ou alors c'est dans le cadre d'un jeu, mais c'est pareil, une redirection n'a aucun sens au beau milieu d'une partie de jeu.
Modifié par QuentinC (16 May 2014 - 17:58)
Bonjour QuentinC
Merci pour ta réponse.

ce code ne s'adresse pas à un site web hébergé pour diffusion sur la toile.
Il sert pour un site hébergé en local , sur un pc avec écran tactile, (cela enlève la souris, le clavier et la ligne de commande ainsi que le smartphone ou tablette)
notre but est de revenir à la page principale du site si aucun utilisateur n'utilise le tactile pendant X secondes pour qu'un autre utilisateur arrivant derrière puisse visiter lui aussi le site en repartant de 0 (donc pas collecte d'information de comportement utilisateur / d'user friendlyness / ergonomie / etc)
les gens qui utiliseront ce site ne feront pas 3 choses en même temps, n'auront pas 12 onglets ouverts et 7 fenêtres car il seront bridés sur ce site et viendront pour avoir des renseignements.

voilà pourquoi ce code m'intéresse et que j'ai besoin de le modifier
bonne journée
Salut,

Je trouve comme Quentin que c'est bizarre comme script mais c'est ton choix.

Si tu souhaite tester par exemple toutes les 1sec comme tu l'as dit dans ton message, je te conseille de te pencher du coté de :
http://www.w3schools.com/jsref/met_win_setinterval.asp
setInterval

Tu pourra, grâce à cette fonction, lancer un script toutes les X secondes, qui recupera la position de la souris, et verifiera 5 seconde plus tard( avec un settimeout cette fois) si la position est toujours la même, dans ce cas tu fais la redirection).

Comme ça, tu n'aura qu'un test effectué toutes les secondes ça devrait améliorer ton premier script niveau performance.

Voila, dis si tu as besoin de pistes pour le code mais je pense que tu as compris le principe !