javascript语言历史
起初,web站点事实上只不过是一个静态的HTML文档集,这些文档之间仅依靠一些简单的超链接(Hyperlinks)绑定在一起。
但很快,随着Web业务的快速普及和增长,网站管理者越来越希望自己所创建的Web页面能处理更多的事情。
1、网站具有更丰富的用户交互能力,以便能完成一些简单的任务(比如验证表单之类),加强与服务器端的信息交互。
2、java applets和LiveScript 其中,livescript就是1995年由Netscape公司开发的程序设计语言
Netscape 2.0之后,它正式被更名为Javascript
3、不久,这种对Web页面中静态元素进行扩展方式就在业界大放异彩,令其他的浏览器厂商也纷纷效仿,推出自己的类似产品。
该语言在Javascipt的基础上引入了一些IE独有的特性。
4、为了使语言的实现更趋向于标准化,一个叫做ECMAScript(欧洲计算机制造商协会)的组织应运而生了。
目前在业界广为流行的JavaScript也只是遵守该标准的一种实现而已。
5、javascript在随后爆发的第一次浏览器大战中得到了迅速的普及,那时正值互联网发展的第一波繁荣期,主要由Netscape和Microsoft
这两大浏览器厂商在争夺市场份额。
6、在此过程中,他们不断地往各自的浏览器中添加新的特性和各种版本的Javascript实现。但他们彼此之间又缺乏共同遵守的标准,
这给Javascript的开发带来大量的负面影响,也给开发人员带来巨大的痛苦。
7、在这种情况下,我们通常只能针对某一个具体的浏览器来编写脚本。
8、如果我们把在这个浏览器上开发的脚本拿到其他浏览器上测试,就会发现它们完全不能工作,与此同时,由于浏览器厂商都在忙于继续增加新的
浏览器特性,以至于根本没能及时更新相应的工具,这导致了开发工具的严重滞后。
9、尽管浏览器厂商引入的不兼容性使web开发人员感到难以忍受,但这还只是问题的一个方面。而另一方面的问题则出在开发人员自己身上。
他们在自己的Web页面中使用了太多的新特性,总是迫不及待地想引入浏览器提供的每一项新功能,以“加强”自己的页面。例如状态栏中的动画,
闪烁的颜色,闪烁的文本,会摇晃的浏览器窗口,屏幕上的雪花效果,能跟踪对象的鼠标光标等,而这往往都是以牺牲实用性为代价的。
这种滥用现象极大的损坏了Javascript在业界的名声,以至于那些“真正的程序员”(这里特指那些具有更成熟的编程语言背景的开发人员,例如Java或C/C++程序员)
对Javascript根本不屑一顾,或者仅仅把它当做一种用于前端设计的玩具。
10、出于上述原因,javascript语言在一些Web项目中遇到了强烈抵制。某些项目甚至完全拒绝在客户端上进行任何的程序设计,转而只信任他们自己可以
掌控的服务器端。确实,在当时的情况下,也没有什么理由值得我们花双倍的时间来为这些不同的浏览器设计项目,然后再花更多的时间去调试他们。
11、这种情况一直持续到第一次浏览器大战结束。但在随后的几年中,Web开发领域在一系列历史进程的推动下,终于发生了一些非常积极的变化。
12、web标准在移动开发领域的重要性在开发人员和浏览器厂商那里得到一致的认可。这是很自然的,毕竟对于开发人员来说,谁也不想因为不同的浏览器
而花费双倍甚至更多的开发时间。这促使各方都越来越倾向于遵守统一的开发标准。
13、尽管目前,我们离建立一个完全统一的标准化环境,还有很长的路要走,但目标已经很明确了。
14、如今的javascript已经成为一种成熟的,在某些方面独一无二的,具有强大原型体系的面向对象语言。关于这一点,最好的例子莫过于是对XMLHttpRequest对象
,javascript可以用Http请求的形式从服务器上获得所需的新鲜内容,实现了页面的局部更新。这样一来,我们就不必每次都刷新整个页面,随着XMLHttpRequest
对象的广泛应用,一种类桌面式的Web应用程序模式诞生了,我们称之为AJAX的应用程序。
javascript语言历史的更多相关文章
- JavaScript 语言的历史
说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.诞 ...
- Javascript的历史
阅读了JavaScript dom简史,从网上看了下,学问很深啊. 首先简单说下网景公司(Netscape)的发展史:1993年,美国国家超级计算机应用中心(NCSA),发表了一个浏览器,命名为“Mo ...
- 《JavaScript语言精粹》学习笔记
一.in的用法 for...in 枚举一个对象的所有可枚举属性 检测DOM/BOM属性 if ("onclick" in elem) { // 元素支持onclick } if ( ...
- js 函数声明方式以及javascript的历史
1.function xx(){} 2.匿名方式 window.onload=function(){dslfjdslfkjdslf}; 3.动态方式 var demo=new Function ...
- JavaScript 语言精粹读书笔记
最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...
- javascript的历史和入门
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript的历史由来及简介
JavaScript的历史由来及简介 前言 这次写一篇对于JavaScript的简介,我们知道的编程语言有很多种,比如Java.C++.Python等等,每种编程语言都有其独具的特色,不论是语法格式还 ...
- 《JavaScript语言入门教程》记录整理:入门和数据类型
目录 入门篇 js介绍 历史 基本语法 数据类型 概述 null 和 undefined 数值 字符串 对象 函数 数组 本系列基于阮一峰老师的<JavaScrip语言入门教程>或< ...
- 《JavaScript语言入门教程》记录整理:面向对象
目录 面向对象编程 实例对象与 new 命令 this关键字 对象的继承 Object对象的方法 严格模式(strict mode) 本系列基于阮一峰老师的<JavaScrip语言入门教程> ...
随机推荐
- API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd API 网关出现的原因
API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd http://www.infoq.com/cn/articles/compa ...
- JLable设置背景颜色
jlabel默认是透明的,所以默认情况下对其设置背景色是不管用的. 但是这样就可以更改其背景颜色: jlabel.setOpaque(true); jlabel.setbackground(color ...
- iOS 多线程之 NSOperation 的基本使用
1.NSOperation,NSOperationQueue 简介 NSOperation,NSOperationQueue是苹果提供给我们的一套多线程解决方案.实际上 NSOperation.NSO ...
- iOS 多线程之 GCD 的基本使用
什么是GCD 全称Grand Central Dispatch 中暑调度器 纯C语言 提供了很多强大的函数 GCD 的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多的CPU ...
- Xenserver中SR、VBD和VDI之间的关系
首先需要理解xenserver下的SR,VDI,VBD这三个概念.如下图 存储库 (SR) 虚拟磁盘映像 (VDI) 物理块设备 (PBD) 虚拟块设备 (VBD) 看上图所示,他们之间的关系. SR ...
- 洛谷 P1640 [SCOI2010]连续攻击问题
洛谷 一句话题意: 每个武器有两种属性,每种武器只能选择一种属性,从属性1连续递增才算攻击,求最大连续攻击次数. 因为同学告诉我这是二分图最大匹配,自然就往那个方向去想. 那么怎么建图呢? 每个武器只 ...
- MySQL中因为unique key 非空唯一索引存在导致修改主键失败案例
研发在早期的设计中,由于设计方面的问题,导致在设计表结构的时候,有个表有非空唯一索引而没有主键 在InnoDB存储引擎中,如果没有主键的情况下,有非空唯一索引的话,非空唯一索引即为主键. 那么这就会有 ...
- Python3.6全栈开发实例[025]
25.文件a1.txt内容(升级题)name:apple price:10 amount:3 year:2012name:tesla price:100000 amount:1 year:2013通过 ...
- Python3.6全栈开发实例[023]
23.税务部门征收所得税. 规定如下: (1)收入在2000以下的. 免征. (2)收入在2000-4000的, 超过2000部分要征收3%的税. (3)收入在4000-6000的, 超过4000部分 ...
- Linux中的位置参数变量
解释: 主要是向脚本中传递数据,变量名不能自定义,变量作用是固定的 $n $0代表命令本身,$1-9代表接受的第1-9个参数,10以上需要用{}括起来,比如${10}代表接收的第10个参数 $* 代表 ...