于是网景公司将代码开源,创造了 Mozilla ,也就是现在的 Firefox。可以说,浏览器大战从未停止过,Opera 、 Safari 、 Google Chrome …… 当然,还有微软的 Internet Explorer 以及一些其他的浏览器。各浏览器引擎不同,标准不一,苦了的就是我们的主角:前端开发。
Ajax 的全称是 Asynchronous JavaScript and XML , 即异步 JavaScript 和 XML 技术。当时炒的神乎其神,而其根本本质其实很简单,就是 XMLHttpRequest ,然后配合 DOM 的操作,就可以变化出各种不同的花样出来。 XMLHttpRequest 负责和服务器交互,返回数据后通过 DOM 的操作动态实时的更新界面元素。
// Provide the XMLHttpRequest class for IE 5.x-6.x:
// Other browsers (including IE 7.x-8.x) ignore this
// when XMLHttpRequest is predefined
var xmlHttp;
if (typeof XMLHttpRequest != "undefined") {
xmlHttp = new XMLHttpRequest();
} elseif (window.ActiveXObject) {
var aVersions = ["Msxml2.XMLHttp.5.0", "Msxml2.XMLHttp.4.0", "Msxml2.XMLHttp.3.0", "Msxml2.XMLHttp", "Microsoft.XMLHttp"];
for (var i = 0; i < aVersions.length; i++) {
try {
xmlHttp = new ActiveXObject(aVersions[i]);
break;
} catch (e) {}
} //欢迎加入全栈开发交流圈一起学习交流:1007317281
}
单单一个 XmlHttpRequest 就让前端程序员百苦难辩,更别说跨浏览器的 DOM 选择与操作、 CSS 的差异…… 前端程序员只能默默檫干眼泪,为了解决这些问题, jQuery 横空出世。
Backbone.js是一个老牌的 JavaScript 框架了,据说后来的 JavaScript 框架都受了它的影响。它的特点是简单、灵活,但是很多事情却要你自己来做。我只是不明白,为什么 Backbone.js 的 Getting Started 会写的那么冗长,对于初学者真的好吗?也许真的是应该是老牌框架的原因吧。
React.js 由 FaceBook 开发,现在也是火的不行。 React.js 让人为之眼前一亮的功能是 虚拟 DOM 的机制。前面提到,为了能支持局部刷新,就需要通过 DOM 操作局部更新元素,一旦项目变大需求变的复杂,也会变得难以维护。而虚拟 DOM 解决了这一问题,通过虚拟 DOM ,你只需要关注整体的 DOM ,当数据发生变化时, React 会重新构建整个 DOM 树, 然后与上一次的 DOM 树进行对比,自己计算出需要变化的部分。由于虚拟 DOM 都是在内存中操作,所以性能会非常好。