先说结论:能,但不适合。
许久前,和同事讨论一个需求,突然另外一个同(后端)事插进来一句:「让前端直接操作文件啊」,言语之间带着命令与嘲讽,丝毫没有任何沟通的态度。且不论这种随意打断别人谈话的行为是否礼貌,就是他之前一贯的行为,早已令人讨厌。于是我直接半开玩笑得怼了一句:「来来来,电脑给你,你来写」,他见状连忙收声,打个哈哈。我承认我有些情绪在里面,但生而为人,你很抱歉。
那么,抛开其他的不说,前端操作电脑文件的可行性到底怎么样?如果可以,那常见网站为什么鲜有直接这么做的呢?如果不能,又是因为什么呢?下面就来研究下这个技术问题。
前端的发展
Front-End Developer
A Front-End Developer is someone who creates websites and web applications.
The difference between Front-End and Back-End is that Front-End refers to how a web page looks, while back-end refers to how it works.
You can think of Front-End as client-side and Back-End as server-side.
The basic languages for Front-End Development are HTML, CSS, and JavaScript.
引用 W3C 的定义,前端主要是创建网站应用的,发展最初只是用来展示静态数据,这也是为什么html 被称为超文本标记语言(Hyper Text Markup Language),本质上只是用来做标记,翻译成人话就是:【有个logo】【有个banner】。如果想要具体指定logo和banner的样式位置大小等,就需要通过 CSS 来实现。
html就好像是饭店的厨师,看着订单,有啥做啥,但至于是哪一桌点的,他倒是不必关心。CSS 就像是传菜员,会将饭菜端到指定的座位上。在这个过程中,传菜员私自进入厨房抡大勺炒菜是不被允许的,除非你认为你的头硬得过。
HTML和CSS的关系就是这样,分工明确,各司其职。我们把这个阶段成为web1.0,时期大约为1991-2003。代表应用可以简单分为:
- 信息发布:各大媒体公司可以通过网站发布最新的新闻和信息。
- 商品展示:网站可以作为一个电子商务平台,让商家展示商品和服务。
- 品牌宣传:通过网站进行品牌广告宣传,提高知名度。
后面随着科技发展和用户需求的变更,前端的内容和功能也在不断调整和新增。注意,这个时候的前端(可以简单理解为网页)内容还很简单,直到 2011 年的草案 File API: Directories and System 的提出,文件&系统操作才被 W3C 注意到,于是新增了 File System API ,但出于对安全性等的考虑,该特性直到现在仍然为非标准特性,官方也在醒目位置标注了其不推荐在生产环境中使用。
后面随着智能设备的普及,互联网发生了翻天覆地的变化,陆续出现了WEB 2.0、WEB 3.0等。2023年初,AI 技术大爆发,未来的技术又该如何发展,现在我们还不得而知。
结语
古话讲,文无第一武无第二,并非任何领域都要整出个一二的,这和谈恋爱一样,好的未必适合你。现如今,编程技术之争从未中断:后端vs前端、react vs vue、驼峰vs下划线、英文vs拼音,鄙视链层出不穷。归根结底,是对彼此的的认识不足,就如Stack Overflow的创始人Jeff Atwood所说(Atwood's Law):
Any application that can be written in JavaScript, will eventually be written in JavaScript. 任何可以用JavaScript来写的应用,最终都将用JavaScript来写。
先不说这句话存在的局限性,单说功能的完成和使用体验之间的冲突就不容小觑,更遑论安全性了。