个人名字叫JavaScript,你也能够喊我Js。在说个人故事以前,我以为有必要先介绍下个人大哥HTML,和大嫂CSS。没错,那个叫Java的家伙不是个人亲戚,咱们隔着好几条街区呢。(来自知乎的神回复:Java和Javascirpt就比如“雷锋”和“雷峰塔”的关系)segmentfault
我大哥算是整个家族的元老级人物,在上世纪90年代初,它被一帮科学家创造出来为了方便他们看文档、传论文。连这帮缔造者本身都没想到,我大哥的出如今以后改变了整个世界。服务器
起初,我大哥的日子仍是蛮逍遥的。它用本身强大的能力将文字和图片构建成一个个文档(Document),并放在服务器上供你们去访问浏览。科学家们吃着火锅唱着歌就把本身的论文发表在了网络上,大哥也以为找到了一份钱多事少离家近的工做,一切看起来都很美好。网络
然而人怕出名猪怕壮,不久,大哥的名声就传出了学术界,愈来愈多的人经过HTML大哥向世界展现他们自个儿,还给大哥构建出的文档起了个时髦的名字:网页。性能
人类是很贪婪的,平淡无奇的网页很快就让他们厌倦了,“文档标题是否是能够变大一些?”,“是否是能够调整不一样段落的字体颜色?”⋯⋯很显然,他们但愿本身的网页看起来更加不同凡响。因而,HTML大哥一次次的被赋予更增强大的能力,新的功能虽然在必定程度上知足了人类的需求,但这也给大哥留下了后遗症,它所构建的网页逐渐变的臃肿不堪。字体
就在大哥人生最低潮的时候,个人大嫂走进了它的生活(1996年)。若是要用一个字形容个人CSS大嫂,那就是——美。自从它来到咱们家,大哥构建的网页要换字体、变颜色、加边框、添背景⋯⋯这些活通通被大嫂一手揽了过去。为这事,大哥乐了好些日子,以前的颓态也一扫而空了。自此,大哥又过上了只负责赚钱养家,由嫂子负责貌美如花的幸福生活。网站
直到有一天,大哥接到一项特殊的任务,一位年轻的爸爸想给本身患有抑郁症的孩子制做一个网站,但愿网页里的天空天天均可以更换一种颜色。听起来很合理的诉求却难到了我大哥,它和大嫂展开了讨论:搜索引擎
“Dear,让咱们帮帮他们,好吗?”,大嫂恳切的说道。spa
“我也很想这样作,可是,Sweetie,你是知道的,我和你的能力仅限于构建静态网站,只要访问相同的网址,返回的页面内容始终是不变的。”索引
“嗯⋯⋯要么,咱们去问问隔壁镇上的老C头(你们都这样称呼资历较老的C语言)吧,它见多识广,指不定能有好主意”。大哥补充说道。进程
两天后,它们见到了正在和C++下棋的老C头,听完大哥的叙述,老C头沉思片刻:“这个好办,不要让用户直接访问你了,我和C++都有判断当前日期的能力,让用户请求先到达咱们生成的程序,你只须要告诉咱们网页长什么样子,咱们在须要改变颜色的地方作点处理,再从新拼接成正确的页面返回就好了。”C++老爹在一旁连连点头。
按照老C头说的办法,有心的爸爸很快制做出了天空颜色会变的动态网页,他从孩子脸上看到了久违的笑容。
(猿知原味注:老C头阐述的方法是最先的动态网页实现方案——CGI技术。除了C/C++以外,CGI程序还能够用PERL、Java、Python、Shell等进行编写)
动态网页很快成为了一种潮流,众多站点加入了访问计数、表单提交等须要网站服务器端进行逻辑处理的功能。这一下老C头可不乐意了,和C++老爹抱怨起来:
“以前我就是想帮个忙,怎么帮着帮着还把我本身套进来了?做为一名绅士,你知道让我去输出那一大堆乱七八糟的HTML字符串是件多么粗鲁的事吗?”
“别提了,老C头,都怨你出的馊主意,每一个请求过来我都得用一个新的进程来处理,这么些年来你们一直称赞个人性能高,这回怕是要晚节不保了。”
“你的性能高?那意思是个人性能不高喽?”
“这还用说嘛,看咱们的名字不就很清楚了么?”
“@#&%$⋯⋯”
两个倔老头又陷入了平常的争论当中。好在没过多久,一个叫PHP的家伙诞生了,它的出现完全消除了老C头的满腹牢骚,由于这家伙迅速接过老C头的活,成为了开发动态网站的主流。
我和PHP的关系还不错,一方面是由于咱们年纪至关(1995年),另外一方面PHP和我大哥是老铁,它常常来我家串门,来和大哥讨论某个动态页面应该如何构建,哪些部分属于应由大哥负责的静态内容,哪些部分属于须要它来标记的动态内容。
总之啊,PHP和咱们这一家子相处的算是其乐融融。
(猿知原味注:PHP相较CGI,不只更好地组织了Web页面的内容,提升了开发效率和可维护性,并且执行效率也比CGI更高。在这以后,ASP和JSP等网站动态脚本语言也相继诞生)
故事讲到这,终于轮到我出场了。在我出生以前,一个网站全部逻辑层面的任务都会由我大哥承包给老C头、PHP等它们那帮跑在服务器上的家伙。好比你要注册一个邮箱,帐号输入时一不当心将@敲成了#,只有当注册帐号被发送到服务器上通过那些家伙校验以后才能发现错误,它们再将错误信息返回到你面前又须要花费一些时间,在那个还在用28.8kbit/s的"猫"上网的年代,这段被浪费的时间极可能长达好几十秒。
个人出现大大改善了这种糟糕的上网体验。我彻底运行在客户端(关于这一点,最近几年我彷佛有些跑偏),那些不必交给服务器的逻辑运算通通由我负责。有了我以后可把我大哥乐坏了,它不再用由于一个简单的表单验证去麻烦它的PHP老弟,或者去面对老C头鄙夷的眼神了。自此,我算是在这个家里站稳了脚跟。
时间过的很快,一晃就跨过了千禧之年,在那先后,大哥带着我接了不少有趣的活,有在车库里建立的搜索引擎,有在大学宿舍里建立的社交网站⋯⋯同它们同样,我要讲的故事也刚刚开始。