[Javascript] Interval van OnMouseMove events

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 22:32
Ik heb een klein stukje javascript die de onmousemove afhandelt van 'document'. Werkt goed, maar als ik mijn muis als een bezetenen heen en weer bewegen gaat de CPU aardig de lucht in.

"Je moet je muis ook niet als een bezetenen heen en weer bewegen!" ; Klopt, maar dit is even voor een test. Het stukje javascript gaat in een groter geheel gebruik worden, wat best zwaar kan zijn en waar gebruikers toch vrij veel heen en weer kunnen gaan met de muis. Elk beetje dat aan rekenkracht bespaard zou worden, is meegenomen.

Is er een mogelijkheid om de interval dat deze event getriggerd wordt te beperken? Ik hoef niet om de milliseconde te weten waar mijn muis uithangt, 250ms zou ruim volstaan bijvoorbeeld!

Hieronder de kleine code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
document.onmousemove = mouseMove;

function mouseMove(ev){
    ev           = ev || window.event;
    var mousePos = mouseCoords(ev);

    document.Show.MouseX.value = mousePos.x;
    document.Show.MouseY.value = mousePos.y;
}

function mouseCoords(ev){
    if(ev.pageX || ev.pageY){
        return {x:ev.pageX, y:ev.pageY};
    }
    return {
        x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
        y:ev.clientY + document.body.scrollTop  - document.body.clientTop
    };
}

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh; ik denk dat je momenteel de positie "toont" met "document.Show.MouseX.value" in een element (textbox, span, div, whatever)? Ik denk dat daar de grootste vertraging in zit.

Als je de muispositie bij onmousemove ergens opslaat in je mousepos variabele en met setInterval dan de weergave bijwerkt ben je er denk ik.


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
document.onmousemove = mouseMove;
self.setInterval("displayPos()", 250);

var mousePos = new function() { this.x=0; this.y=0; }

function mouseMove(ev){
    ev           = ev || window.event;
    mousePos     = mouseCoords(ev);
}

function displayPos() {
    if (mousePos) {
        document.getElementById("pos").innerHTML = mousePos.x + '-' + mousePos.y;
    }
}

function mouseCoords(ev){
    if(ev.pageX || ev.pageY){
        return {x:ev.pageX, y:ev.pageY};
    }
    return {
        x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
        y:ev.clientY + document.body.scrollTop  - document.body.clientTop
    };
}

Zoiets, uit de losse pols :P

Oh, en: Waar hoort mijn topic?
PRG >> WEB

[ Voor 213% gewijzigd door RobIII op 14-07-2009 17:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij