Home  >  Article  >  Web Front-end  >  Web 前端与算法的结合点在哪里?

Web 前端与算法的结合点在哪里?

WBOY
WBOYOriginal
2016-06-07 08:42:361232browse

想知道在web前端开发中算法的应用主要在哪方面,有没有一个结合点?

回复内容:

# 对 JavaScript 原生方法的优化(不代表所有方法都会对速度有所提升)与扩展。
* 著名的 jQuery 及 Zepto.js: the aerogel-weight jQuery-compatible JavaScript library
* Underscore.js

# 数学计算
* jStat : a JavaScript statistical library 统计算法库

# 图形计算
* KineticJS HTML5 Canvas Framework
更多的是对 Canvas 的接口进行封装,不过动画上,大量使用各类算法。
新版本的是取自,GSAP JS – Professional-Grade JavaScript Animation « GreenSock
* three.js - JavaScript 3D library 这个不用多说了吧,各种 Demo 已经说明了一切,这些都是算法的应用。

…… 还有很多。

Web 前端也可以是处理大量数据的。
但是由于语言本身不算高效,还有不同平台上的性能差异(特别是移动平台上),
非常需要用算法来优化这些数据处理过程。

另外,不能说成是算法吧,一种工程模式,以限制 JavaScript 过分的灵活性。
使用 AMD、CommonJS 及 ES Harmony 编写模块化的 JavaScript

总之,前端现在是大有「木有做不到,只有想不到」的趋势了 ……
最后,关于结合点,看自己想做成什么样嘛。 我想题主期待的是举例前端算法应用,而不是具体算法的实现,甚至某个数学库函。

前端由于面向的是界面及交互实现,所以算法研究和应用确实相对较少。已知的几个需要一定算法应用的领域主要有游戏,编辑器及协同办公,GIS(地图),阅读器排版等。

除了这些比较复杂的前端应用之外,前端在算法上的要求确实较少。

不过我觉得前端虽然技术问题少,但是工程问题很多,是另外一个值得研究和探索的领域。

参考 facebook静态资源管理系统@velocity2010 v.youku.com/v_show/id_X 模块加载器中的依赖算法。线排还是面排。
编辑器中的节点关系算法,如何最优?
选择器的流程优化,正则还是循环。
动画实现原理。几何概念等。
堆栈的应用。队列管理。如何设计json结构,前端排序。
日期相关,地图相关。
太多啦。只是你开发的东西太少。 数据可视化 d3js.org/
游戏引擎 html5gameengine.com/ 算法应用有很多啊,比如常见的界面动画、3D动画、基于canvas的验证码识别和图像处理 并不是一个很 general 的库,但是我非常喜欢。很精致用心。当年用 Canvas 做页面特效时用到过:

gorhill/Javascript-Voronoi - GitHub oldj 的文章:不用HTML5/CSS3如何在网页上画机器猫 讨论了 DOM 画图的优化问题,算是一个 web 前端特有的问题吧:
虽然计算机图形学已经非常成熟,但使用 div 在网页上画图(下面称之为“DOM 画图”)与传统的计算机图形学还是有所不同,传统的计算机图形学中可以利用的最小单位是一个 1px 的点,但 DOM 画图上可以利用的最小单位是一个 div ,或者说是一个矩形,这样一来,对于 DOM 画图技术来说,画一个小点的成本和画一个很大的矩形的成本几乎是一样的(横线或竖线也可以看成矩形)。这就为 DOM 画图提出了一个优化要求:如何使用尽可能少的矩形来拼成所需图形?如下图所示。
Web 前端与算法的结合点在哪里?上图显示了 DOM 画图中一段弧线的三种优化程度。最左边的那种用了最多的 div ,同时该约简的地方没有约简,具体表现为图像看起来会有锯齿或者拖泥带水;中间那种解决了约简的问题,但用的 div 还是太多了,该合并的地方没有合并;右边那种在前两者的基础上,把同一行、同一列相邻的 div 合并了起来,用了最少的 div 完成了图像的绘制。我们认为,对于 DOM 绘画来说,右边这种方案最佳。
我了解的就是一些广告的投放需要用到一些算法,前端我觉得算法用处不大,顶多和后端协作一下。当然,那些经典的算法还是得了解下 看看这个吧,用算法来实现js版本的增量更新,让用户只下载更新的代码,基本做到字符级别的精确度:mtjs/mt · GitHub 这么说吧,JS他爹本来中意的是函数式。如果你把JS这个语言当C那么用只能是痛不欲生,如果把他当函数式用的话,会觉得矮油不错哦。

jQuery的作者就是看破了这一点,从函数式那边借了点儿皮毛过来,现在一大堆的前端哭着喊着离不开jQuery了。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn