2010-03-06 20 views
3

Je me soucie vraiment de Webkit, mais en général, est-ce que Raphael JS devrait fonctionner correctement lors de la construction de milliers de rectangles?Performance de RaphaelJS avec des milliers de chemins/rectangles

En outre, je devrais être capable de gérer des événements sur chacun de ces rectangles (yipes).

J'ai une solution C++ qui fonctionne mais je préfère utiliser RaphaelJS.

Merci :)

+0

Avez-vous utiliser SVG? La toile peut être plus rapide. – Ronald

+0

Non, je n'ai pas besoin d'utiliser SVG. Mais j'aime RaphaelJS :) – cheez

Répondre

4

Je ne sais pas rien RaphaelJS mais je peux vous donner un indice de performance avec ce code:

<!DOCTYPE html> 

<html> 
    <head> 
     <meta charset = "utf-8"> 

     <title></title> 

     <script> 
      window.onload = function() { 
       var rectangles = 5000; 

       for (var i = 0; i < rectangles; i ++) { 
        var height = 50; 
        var width = 50; 

        var canvas = document.createElement ("canvas"); 
         canvas.height = height; 
         canvas.style.margin = "15px"; 
         canvas.width = width; 

        canvas.addEventListener ("click", function() { 
         alert ("You like to MOVE !"); 
        }, false); 

        var ctx = canvas.getContext ("2d"); 

        ctx.fillStyle = "silver"; 
        ctx.fillRect (0, 0, width, height) 

        document.body.appendChild (canvas); 
       } 

       canvas = document.body.getElementsByTagName ("canvas"); 

       window.setInterval (function() { 
        for (var i = 0; i < canvas.length; i ++) { 
         canvas[i].style.margin = (Math.floor (Math.random() * 16)) + "px"; 
        } 
       }, 100); 
      } 
     </script> 
    </head> 

    <body></body> 
</html> 

5000 rectangles qui se déplacent avec l'événement "onclick": enter image description here

+0

+1 pour l'animation – Gant

3

Si vous souhaitez tester les performances de Raphael JS, j'ai posté un exemple rapide de tracé de 10.000 points. Les tests rendent et nettoient les temps.

http://jsfiddle.net/jaRhY/1049/

+1

fourchu pour tester l'animation aléatoire de nombreux cercles http://jsfiddle.net/Lfehb07d/ –