起初,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. 【BZOJ3526】[Poi2014]Card 线段树

    [BZOJ3526][Poi2014]Card Description 有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i].现在,有m个熊孩子来破坏你的 ...

  2. Cocos2d-x Lua中多场景切换生命周期

    在多个场景切换时候,场景的生命周期会更加复杂.这一节我们介绍一下场景切换生命周期.多个场景切换时候分为几种情况:情况1,使用pushScene函数从实现GameScene场景进入SettingScen ...

  3. kafka 集群安装过程

    1.下载需要的安装包 http://kafka.apache.org/downloads.html 本文使用的 Scala 2.9.2 - kafka_2.9.2-0.8.2.2.tgz (asc,  ...

  4. Bootstrap支持的JavaScript插件

    1.导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaSc ...

  5. ehcache 的HelloWorld实现(二)

    EhCache最新版本是3.X 本人一直用的是2.X 比较稳定 功能足够用: 所以还是用2.X版本: 我们新建一个Maven项目, pom.xml里引入 ehcache支持: <dependen ...

  6. MySQL将语句写入到binlog二进制日志中

    由于二进制日志是公共资源,所有线程都要写二进制日志,所以一定要避免两个线程同时更新二进制日志.因此,在事件组写二进制日志时,二进制日志将获得一个互斥锁LOCK_log,然后在事件组写完后释放,由于服务 ...

  7. CoreThink主题开发(七)使用H-ui开发博客主题之新闻资讯正文页面

    感谢H-ui.感谢CoreThink! 效果图: 后台发文章有上传附件.封面的功能,但是前台代码中有,不能显示,去除了,前台页面还有社会化分享,百度的,页面也不显示. Blog/Cms/Index/d ...

  8. asp.net(c#)中String.Empty、NULL、"" 三者到底有啥区别和联系?

    开门见山,首先看下面代码,你认为结果分别是什么? string str = string.Empty; string str1 = ""; string str2 = null; ...

  9. 【整理学习Hadoop】H D F S 一个分布式文件系统

    Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统的区别 ...

  10. Python基础(8)_迭代器、生成器、列表解析

    一.迭代器 1.什么是迭代 1 重复 2 下次重复一定是基于上一次的结果而来 l=[,,,] count= while count < len(l): print(l[count]) count ...