前言
这是我第一次写文章
很早就有想写技术博客的想法,但一直都没开始做这件事。
其实在开发的过程中,把自己遇到的一些问题记录下来,自己悟到的一些心得记录下来,对自己的知识展示与巩固都有很好的帮助。
因此,从这次起,我将会以每周至少一篇技术相关文章来要求自己,希望早日能成为自己心目中的技术大神。
浅谈前端发展的必然性
前端这两年发展很快,而我入行做程序员的时间也只有两年多一些,所以只能是浅谈。
不喜勿喷,多多担待。也想和更多的同行有交流
ajax技术-前后端分离
其实以我看来前端的发展有很大的必然性,有一些“道”可循。其主要变革我觉得都是因为ajax的普及。众所周知,在ajax没有出现之前,表单提交是需要重新请求页面的(原生的from表单submit事件),所以ajax技术的出现解决了这个问题以得到更好的用户体验。这个发展可以说是必然的,毕竟对于程序员来说有需求就要实现嘛。在ajax全面普及之时我们发现ajax可以做的更多,可以由页面发起单独请求所需数据,让页面更加的灵活,让页面动了起来~而不是死死的写啥展示啥,有了这个方向的发展,其实前后端就有了分离的可能。
越来越多的数据处理需求
在互联网用户越来越多以后,每一条请求每一条数据都需要服务端来计算,渲染等,服务器需要减负,而减负的方法就是让每个客户端来处理一些公开的数据处理。这样就可以最好的做到均衡,我客户端只处理一些我自己的事情,也不累,可很快,而服务端就可以大大的提高硬件效率。
模块化
在页面端处理越来越多的逻辑后,前端的请求越来越多,页面中的逻辑计算也越来越多。在前端处理越来越多的请求,处理越来越多的数据以后,往往单张页面也会变得很复杂,很累赘。所以前端工程化模块化也就应运而生了。像现在的主流框架vue、angular、react都是此类优秀的解决方案。
SSR(服务端渲染)
而模块化工程化后,带来了两个问题
1.搜索引擎seo问题。因为很多模块化工程化都十分依赖js,很多都是按需加载,页面中没有许多搜索引擎需要的关键字,这样一来很多对外的,to C端客户的页面被点开的频率就会降低。
2.过多的网络请求下,数据量过多的情况下我的页面被打开的速度大大降低了,由于网络速度的限制以及多条请求的耗时(要知道完成一次前后端互交浏览器与服务器之间是有多次交流的,可参阅网络请求协议)
为了解决这两个问题,所以就有了SSR。react有next.js vue有nuxt.js 还有许多原生的/node端的SSR解决方案。
结语
以上就是我目前想道的前端发展中产生的一些想法。比较笼统,比较大方向。
当然,这是一条线下来的,中间还有许多发展分支没有提到,如:
1.前后端分离的node中间岛概念
2.APP相关的hybird混合开发
3.Dcloud、reactNative、ionic之类的直接打包app
4.解决js单线程原因造成页面卡顿而产生的promise异步方法
5.electron、nw.js之类的桌面应用打包方法
6.手机应用便捷的小程序
...
等等
前端要学习有很多,就以上提到发展来说大家都可以看到,技术是不断完善的。总是会有问题会出现,也总会有解决办法。程序员不就是一个不断挖坑和填坑的职业么,所以不要在任何时候对技术放弃信心,他总会有解决的办法方案,学习再学习