【问题标题】:Is Processing.js worth it?Processing.js 值得吗?
【发布时间】:2011-05-04 10:59:27
【问题描述】:

主要是由于库的膨胀,我不愿认真追求 ProcessingJS 的作品。我发现像Ball Droppings 这样的部分不使用库的处理语法解析器,这很好,因为我想它会进一步减慢页面速度,尤其是增加初始加载和设置时间。不过,我想知道将它基本上用作像 UnderscoreJS 这样的大型实用程序库是否值得。例如,与今天的其他库(如 RaphaelJS)相比,它的 SVG 实现有多好?有没有人足够广泛地完成处理 API 的实现?当我浏览时,我看到了很多我并不真正需要的样板,以及一些有问题的编码实践实例。但是库仍然似乎表现不错,至少在 ProcessingJS 主页上,尽管示例设置为以 15fps 运行,而不是(在我看来)最低可接受的 24fps。

【问题讨论】:

标签: javascript canvas performance processing.js


【解决方案1】:

我认为这在很大程度上取决于您正在从事的项目以及您对处理库的背景知识。

如果您已经学习了原始处理 api (java) 并希望在 Web 环境中利用您现有的知识,Processing.js 是一个不错的选择。如果您想将现有项目移植到网络上,这可能是唯一的选择 - 实际上这可能是使用它的最佳时机。

如果您是一名 JavaScript 程序员并且对处理不太了解,您可能不喜欢在浏览器中编写 Java 语法,如果您必须将其与 js 混合使用,一切都会变得更加成问题。 API 感觉不像 JavaScript,还有很多代码可以写得更优雅。

就性能而言,这不是一个糟糕的选择,实际上大多数项目都运行顺利,我绝对可以推荐在上述情况下使用 processing.js。

这里是各种 javascript 引擎的精彩列表Javascript Graphic/Game Engines

很难推荐单个库,因为每个项目的要求都是特定的。 对于简单的图形/图表:RaphaelJs 非常好,性能也不错

【讨论】:

  • 我看不出在 JavaScript 中重新渲染每一帧的性能如何。我可以看到在 Java 中性能成本很低。但是谢谢你的回答。在处理端口方面,我主要关注解释器。用解释语言写解释器不是很奇怪吗?此外,从 JavaScript 到 Java 在快速原型设计方面几乎是一种倒退。
  • 这就是我想要解释的 - processing.js 只有一件好事:获取为处理而编写的原始 java 代码并将其解析为在浏览器中本机运行的 javascript。无非如此。我不会完全抛弃这个项目,因为它有自己的(小)用例;-)
  • 其实PJS现在已经支持普通的JS了,好像有一段时间了:processingjs.org/articles/…
【解决方案2】:

与目前的其他库(如 RaphaelJS)相比,它使用 SVG 的实现有多好

据我所知,Processingjs 不使用 SVG,它只使用画布。 Raphaeljs 只有 SVG。有一篇有趣的文章 herewikipedia 关于差异。主要区别在于 SVG 存储对象的矢量数据,因此您可以轻松更改对象的位置、颜色等,而且还提供鼠标悬停事件。 Canvas - 和 processingjs - 没有这样的事情,它绘制到画布上并忘记一切,所以你必须做更多的工作。不知道两者之间的性能差异。

就 processingjs API 而言,我不知道它是如何实现的,但由于涉及到 jQuery 的 John Resig,至少可以说还不错。

我同意用户 hlfcoding 的观点,即在浏览器中编写 java 感觉很奇怪。我也在为我未来的画布实验寻找更清洁的解决方案。

我看不出在 JavaScript 中重新渲染每一帧的性能如何。

这正是 canvas 的工作原理,你必须在 js 中计算和渲染每一帧,它不是特定于 processingjs 的。我认为这不会对性能造成如此大的影响,在后台运行 SVG 的浏览器无论如何都会做同样的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多