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语言入门教程> ...
随机推荐
- 《从零开始学Swift》学习笔记(Day 45)——重写方法
原创文章,欢迎转载.转载请注明:关东升的博客 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person { var name: S ...
- hctf2016 fheap学习(FlappyPig队伍的解法)
目录 漏洞原理 二次释放 如何在第二次释放前修改函数地址 fastbin的特性 修改函数指针流程 如何获得进程的加载基址 格式化字符串漏洞 确定printf函数在代码段中偏移 printf函数输出想要 ...
- React-学习总结
概念知识:1.JSX是什么 JSX其实是JavaScript的扩展,React为了代码的可读性更方便地创建虚拟DOM等原因,加入了一些类似XML的语法的扩展. 2.编译器——jsxTransforme ...
- 通过配置rinetd来实现ECS跳转访问非外网连接的mongodb
跳转的原理通用,不单单针对mongo,其他需求应用也可以使用这种方式 生成环境中的mongodb迁移到了阿里云上的mongodb,由于机制的问题,mongodb不能直接被外网访问,故此采用的办法为 ...
- Oracle ErrorStack 使用和阅读具体解释
一.概述 在Oracle数据库执行过程中,我们常常会遇到这样或那样的错误.可是错误的提示并不详细,加大了我们在诊断问题时的难度. ErrorStack是Oracle提供的一种对于错误堆栈进行跟踪的方法 ...
- iOS 载入图片选择imageNamed 方法还是 imageWithContentsOfFile?
Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其參数为图片的名字. 2. imageWithContentsOfFile,其參数也是图片文件的路径. 那 ...
- python调用html内的js方法
这方面资料不多,不懂html,不懂js,略懂python的我,稍微看了点html和js,好几天的摸索,终于测试成功了. PYQT+HTML利用PYQT的webview调用JS内方法 1.python调 ...
- Safari通过JavaScript获取系统语言
IE6 IE7 IE8 Firefox Chrome Safari Opera navigator.language undefined zh-CN zh-CN navigator.userLan ...
- JAVA ArrayUtils 数组工具类
package com.sicdt.library.core.utils; import java.util.ArrayList; import java.util.Arrays; import ja ...
- 给二维码(图片)添加文字(水印),让生成的二维码中间带logo
<?php //生成二维码 require_once IA_ROOT . '/framework/library/qrcode/phpqrcode.php'; QRcode::png($url, ...