-
有前端的大佬 指点一二 关于竖式书写?
2021-02-03 10:44不太懂是什么意思,不过有一些地方大致说说。
你的实例里并不是用的浏览器提供的 textarea,浏览器仅支持完全由 textarea 承担的文本框实现输入时自动滚动,但是如果完全使用 textarea 元素又会遇到各种各样的兼容性问题,至少我测试下来确实是这样——firefox、chrome、vivaldi 三个浏览器的表现都不太一样,甚至在 vivaldi 中普通地设置根本无法有对应的效果。所以用一个干净的 div 容纳文本,再使用一个临时的 textarea 作为输入器是没问题的,在这种情况下,在 textarea 的 input 事件上挂载句柄让父元素每次输入时水平定位到 textarea 应该就没问题了,代码并不复杂,也没有什么效率问题,浏览器基本上就是这样实现的,不太理解你说的“bug”是哪里的问题。
其实对于这样的特殊输入方式,最好的办法是使用一个“full width”子元素容纳文本,再将父元素设置为隐藏溢出来充当视口,用以消去浏览器默认的滚动行为的同时使用脚本设计新的滚动行为。总之这种情况下,依赖于 css 构成浏览器的默认滚动行为是不稳妥的,而且效果也差强人意。
-
为什么 cloneNode 克隆图片会重新请求一次图片资源,而不是直接使用缓存呢
2021-02-03 00:02使用 cloneNode 进行图像的复制是可行的,和创建相同的 Image 对象是几乎一样的效果,但具体取决于浏览器和服务器的缓存策略。
更安全的方法是使用 fetch 获取后转化为 dataurl 字符串,再使用 dataurl 作为地址生成相同的图片。
同样安全并效率更好的方法是使用 createObjectURL 方法生成对象 url 并使用该 url 生成图片,但是需要记得销毁。
-
现代前端技术体系,你怎么看
2021-02-02 23:39个人观点
前端的发展速度是很快,但大概没有楼主想像的那么快,一个行业的发展速度,是由行业标准和准标准的事物决定的。那么对于前端来说,它的发展其实取决于前端各个技术的标准以及 jQuery、Vue 这一类的流行框架,如果以 2010 年左右作为前端兴起的开始时间来算的话,其实并没有网络上所说的那么快速,虽然相比而言还是很快的。
对于楼主所问的“前端有没有走错路”,个人的回答是暂时还没有。因为目前来看,构建网页所使用的技术还是完全可以自己决定的,就算不使用大框架自己构建也是完全可以的,同时各个技术标准也维持在良好的状态。所以现在的前端拥有很多种类的技术并且没有限制程序员使用哪一种,并没有走错路,反而是一个比较好的状态。
对于楼主所引用的二次思考那篇文章我也是认同的(另一篇感觉好偏激没有去看),那一篇文章从两个角度说明了当下几个大型框架的缺陷,同时对现代程序员的滥用行为作了批判。但是,如你所看到的,他并没有提及前端走错了方向。当下的前端依然是兼容并包的,出现问题不是前端,甚至本身有缺陷的大型库们也没有错,毕竟没有哪种库是开发出来应对所有情况的。那么最终的问题在于大多数程序员/行业的使用方式,公司及个人不加任何思考就使用大型框架作为开发基础才是应该纠正的地方,这一现象在国内尤其明显。
就如玩游戏上瘾的人固然有责任,但开发游戏的公司如果刻意去引导成瘾的话也是不对的一样。有些框架也许促成了当下的一些行为,比如 Vue——Vue 跨越的领域太多了,导致用户产生了“用它的话什么都可以做”的错觉,可以做和适合做是不一样的,个人认为,特别是这些大型框架的贡献者们,在拓展它们的适用领域的时候应该好好考虑一下。
最后对楼主所引用的文章做一下补充,文章中所提到大型框架的影响分为技术方面和习惯方面,技术方面不作补充了,虽说有很多,但并不是我的专长而且也列举不来。习惯方面的话,和楼主所说的一样,大型框架普遍屏蔽了实现方面的细节,让使用者方便地进行开发,结果就是——对于不成熟的开发者,阻断了其对于底层和程序架构的学习动力,这也是如之前所说的为什么前端的开发人员数量巨大但是发展速度却没有预想的那么快速的原因:大多数人并没有促成前端的发展,只是在利用已有的前端技术完成任务而以;另外,即使对于大多数成熟的开发者来说,过多地使用大型框架也会阻断其对于新架构的创造力,就如同大家习惯了对象型编程后就很难想到其他编程模式一样。
-
入手 WebGL 和 Three.js 看书还是怎样完成?
2021-02-02 22:25虽然估计你已经做出来了,但姑且回答一些:
如果只要完成任务做一个数据展示平台的话,初中左右的数学知识加上 Three.js 就可以,去官网看看 demos 大概就差不多了。
想好好学三维的话,先沉下心来,不要去在意那些炫酷的东西了,其他的领域不太清楚,但一直盯着酷酷的东西是学不会三维的(因为三维其实不酷,酷酷的是那些奇奇怪怪的生成算法,如果你喜欢的是那一类东西,建议去看看有本 Oreilly 的书叫“复杂性思考”)。然后去看看 webglfundamentals 的教材,讲的很好的。
大致搞懂 Opengl 和 webgl 的原理后,你可以随意选择直接在 webgl 上开发或者是在别人的库的基础上开发,这个看情况,如果打算专门做三维这一块的话就不要用第三方的库,如果只是打算学习使用这门技术的话就用三方库。