起初,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语言历史的更多相关文章

  1. JavaScript 语言的历史

    说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.诞 ...

  2. Javascript的历史

    阅读了JavaScript dom简史,从网上看了下,学问很深啊. 首先简单说下网景公司(Netscape)的发展史:1993年,美国国家超级计算机应用中心(NCSA),发表了一个浏览器,命名为“Mo ...

  3. 《JavaScript语言精粹》学习笔记

    一.in的用法 for...in 枚举一个对象的所有可枚举属性 检测DOM/BOM属性 if ("onclick" in elem) { // 元素支持onclick } if ( ...

  4. js 函数声明方式以及javascript的历史

    1.function  xx(){} 2.匿名方式   window.onload=function(){dslfjdslfkjdslf}; 3.动态方式  var demo=new Function ...

  5. JavaScript 语言精粹读书笔记

    最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...

  6. javascript的历史和入门

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. JavaScript的历史由来及简介

    JavaScript的历史由来及简介 前言 这次写一篇对于JavaScript的简介,我们知道的编程语言有很多种,比如Java.C++.Python等等,每种编程语言都有其独具的特色,不论是语法格式还 ...

  8. 《JavaScript语言入门教程》记录整理:入门和数据类型

    目录 入门篇 js介绍 历史 基本语法 数据类型 概述 null 和 undefined 数值 字符串 对象 函数 数组 本系列基于阮一峰老师的<JavaScrip语言入门教程>或< ...

  9. 《JavaScript语言入门教程》记录整理:面向对象

    目录 面向对象编程 实例对象与 new 命令 this关键字 对象的继承 Object对象的方法 严格模式(strict mode) 本系列基于阮一峰老师的<JavaScrip语言入门教程> ...

随机推荐

  1. EasyNVR摄像机无插件流媒体服务器对所在操作系统配置的需求

    背景需求 随着EasyNVR使用的用户越来越多,用户在使用过程中的常见问题我们也做出了一定的总结,以及在升级到3.0版本之后,我们的启动方式和配置 功能也有了一些改变.因此在此做出一些总结. 对于Ea ...

  2. sparse matrix

    w https://en.wikipedia.org/wiki/Sparse_matrix 稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB - Bin的专栏 - 博客园ht ...

  3. ASP-Command-SQL格式

    conn.open constrSet c=Server.CreateObject("ADODB.Command")With cSet .ActiveConnection = co ...

  4. python作用域和JavaScript作用域

    JavaScript 一.JavaScript中无块级作用域 一个大括号一个作用域,就属于块级作用域,在Java和c#才存在块级作用域 function Main(){ if(1==1){ var n ...

  5. 查看hive的配置信息

    在启动hive时设置配置属性信息 $ bin/hive --hiveconf <property=value> 查看当前所有的配置信息 hive > set ; hive (db_h ...

  6. 在一台服务器上搭建多个网站的方法(Apache版)

    Apache的配置文件一般放置在/etc/httpd/conf文件夹下,httpd.conf是它的主配置文件,在进行配置时可以将虚拟主机的配置文件单独配置,如取名为vhost.conf,然后再http ...

  7. 【jenkins】jenkins实时显示python脚本输出

    jenkins在构建shell脚本时可以实时输出结果,但是在构建python脚本时,是等到python执行完成以后,才显示结果,这个对于我们判断脚本执行状态非常不利 这里介绍一种方法,能够实时显示py ...

  8. Django基础(二)_Ajax、csrf伪站请求

    什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子 ...

  9. idea java web 使用说明

    String realPath = request.getSession().getServletContext().getRealPath(uploadPath);//上传压缩包所在目录       ...

  10. $GitHub边用边总结

    以下用法是在ubuntu系统下的用法,主要内容整理自'廖雪峰的官方网站'. #1.安装git$ sudo apt-get install git #2.声明git账号$ git config --gl ...