Je pense à faire un site web avec une utilisation JavaScript/toile assez intense et j'ai regardé Processing.js et il me semble que cela rendrait la manipulation de la toile considérablement plus facile. Est-ce que quelqu'un sait des raisons pour lesquelles je ne devrait pas utiliser Processing.js? Je comprends que les anciens navigateurs ne seront pas en mesure de l'utiliser, mais pour l'instant c'est ok.Est-il raisonnable d'utiliser Processing.js de John Resig?
Répondre
Comme mentionné, IE n'est pas supporté par Processing.js (y compris IE8 beta). J'ai également trouvé que processing.js était un peu lent en termes de performances, comparé à l'utilisation de canvas (surtout si vous êtes en train d'analyser une chaîne avec le langage Processing, au lieu d'utiliser l'API javascript).
Personnellement, je préfère l'API toile sur l'enveloppe de traitement, car elle me donne plus de contrôle. Par exemple:
La fonction ligne de traitement() est mis en œuvre comme celui-ci (à peu près):
function line (x1, y1, x2, y2) {
context.beginPath();
context.moveTo(x1, y1);
context.lineTo(x2, y2);
context.closePath();
context.stroke();
};
Et vous l'utiliser comme ceci (en supposant que vous utilisez l'API javascript exposée):
var p = Processing("canvas")
p.stroke(255)
////Draw lines...///
p.line(0,0,10,10)
p.line(10,10,20,10)
//...and so on
p.line(100,100,200,200)
////End lines////
Notez que l'appel chaque ligne() doit ouvrir et fermer un nouveau chemin, alors qu'avec l'API de toile, vous pouvez tirer toutes les lignes dans un seul bloc beginPath/endPath, l'amélioration des performances de manière significative:
context.strokeStyle = "#fff";
context.beginPath();
////Draw lines...///
context.moveTo(0, 0);
context.lineTo(10, 10);
context.lineTo(20, 10);
//...so on
context.lineTo(200, 200);
////End lines...///
context.closePath();
context.stroke();
Si ça ne marche pas avec IE7, alors allez-y. Je l'ai eu fonctionnant dans Firefox 3. C'est une manière lisse d'apporter des effets de Silverlight/Flash à votre page. Mon intuition est que les bibliothèques comme Processing.js vont changer ou être mises à jour sur un chemin accéléré, alors préparez-vous à courir quand elles le font et suivez les nouvelles fonctionnalités.
Je dirais plutôt utiliser Flash. Plus de navigateurs ont Flash installé, que le nombre de navigateurs qui fonctionnent avec processing.js. De plus, vous obtiendrez de meilleures performances de Flash par rapport à JavaScript (du moins pour l'instant, bien qu'il y ait des projets en cours pour accélérer JS, mais c'est encore un peu loin)
Idéalement, Flash, Silverlight, et al devraient tous être détruits par (au moins de facto) le contenu et la fonctionnalité normalisés DOM. –
Il doesn ' t simplifier le dessin sur votre toile. Ce qu'il fait est de simplifier la tâche d'animation si vous utilisez du canevas. Si vous faites de l'animation et que vous ne vous souciez pas de la prise en charge complète du navigateur, utilisez Processing.js. Si vous ne faites pas d'animation (si vous faites des graphiques ou des coins arrondis par exemple), n'ajoutez pas le surcoût de Processing.js.
De toute façon, je vous recommande d'apprendre à utiliser directement l'API canvas. Comprendre l'API de la toile, en particulier les transformations, vous aidera grandement, même si vous utilisez Processing.js.
Essayez la nouvelle implémentation javascript p5js p5js.org
Oh, et en réponse à la réponse de Leo, vous n'avez pas fait d'utiliser la fonction de ligne dans le traitement ou p5js, il y a séparés beingShape et beingPath fonctions similaires à l'API toile.
- 1. Explication du code ninja de John Resig
- 2. processing.js chargement de fichiers externes
- 3. Temps d'indisponibilité raisonnable
- 4. Comment appeler la fonction Processing.js à partir du HTML?
- 5. Durée raisonnable pour déterminer l'emplacement de l'utilisateur iPhone
- 6. Existe-t-il un moyen de manipuler le code généré par Processing.js via Javascript?
- 7. ASP.net MVC: Ce modèle est-il raisonnable ou conceptuellement incorrect?
- 8. Recherche d'un élément maximum raisonnable (sans bruit) dans un vecteur
- 9. Est-ce une implémentation raisonnable de la fonction de Bézier quadratique dans OCaml?
- 10. Quelles sont les exigences techniques et le format de base raisonnable pour une icône de l'iPhone?
- 11. Quand est-ce NIH vs être un investissement raisonnable de temps?
- 12. Est-il raisonnable d'avoir plus de 65536 types définis par l'utilisateur dans les grands projets?
- 13. Quelle est la durée "raisonnable" pour garder un curseur SQL ouvert?
- 14. Est-ce une approche raisonnable pour un convertisseur EBCDIC (CP500) en Latin-1?
- 15. Quelle est la taille maximale raisonnable qu'une application multiplateforme devrait permettre à un fichier texte d'obtenir?
- 16. Existe-t-il une bibliothèque SSDP ou DIDL raisonnable pour java/groovy/python?
- 17. Est-ce une approche raisonnable pour l'authentification HTTP BASIC avec une clé API?
- 18. Existe-t-il un scénario raisonnable pour un IComparer avec état <T>?
- 19. Est-il possible (et raisonnable) d'utiliser MEF et Prism (CAL) dans un projet?
- 20. Est-il possible (raisonnable) d'exposer un WS SOAP en tant que JMS?
- 21. Qu'est-ce qu'un moteur de sélection?
- 22. Variable de classe dans la classe javascript
- 23. HTML 5 est-il pris en charge par tous les principaux navigateurs?
- 24. Les onglets jquery doivent-ils être à l'intérieur de document.ready?
- 25. Est-ce qu'un simple id-> json dans le magasin SQLite raisonnable pour un stockage de Q & A bon marché et sale?
- 26. Quelle est la pertinence de l'OpenAjax Alliance pour le développeur Web moyen?
- 27. Regroupement des séries de données
- 28. Fractionnement d'intersection de plages de dates dans SQL
- 29. comme séparateur de virgule dans Rails Console déclaration
- 30. Variables javascript, qu'est-ce que var x = a = {} faire?
Avez-vous regardé des bibliothèques de canvas Javascript pur comme [Fabric.js] (http://fabricjs.com)? – kangax