简介

Vanilla JS团队维护每个字节的代码框架,每天努力工作,以确保它是小的和直观的。使用Vanilla JS是谁?很高兴你发问!他被应用于:

Facebook; Google; YouTube; Yahoo; Wikipedia; Windows Live; Twitter; Amazon; LinkedIn; MSN; eBay; Microsoft; Tumblr; Apple; Pinterest; PayPal; Reddit; Netflix; Stack Overflow

In fact, Vanilla JS is already used on more websites than jQuery, Prototype JS, MooTools, YUI, and Google Web Toolkit - combined.

事实上,Vanilla JS的使用量已经远远超过了jQuery, Prototype JS, MooTools, YUI 和 Google Web Toolkit 的总和。

模块化

VanillaJS包括如下模块,下载安装时可以只选择需要的模块,以便提高性能。

核心功能; DOM(遍历/选择器); 基于原型的对象系统; AJAX; 动画; 事件系统; 正则表达式; 函数作为第一类对象; 闭包; 数学库; 数组库; 字符串库

开始使用

Vanilla JS是世界上最轻量的javascript 框架,浏览器向站点发送请求前就已经把Vanilla JS加载在浏览器里了。

使用Vanilla JS只需在应用的HTML里加入这行:

<script src="path/to/vanilla.js"></script>

当你部署你的应用的时候,使用这个更快的方法:

没错!没有任何代码,Vanilla JS 太流行了,所有的浏览器在十年前就已经内置了它。

性能比较

根据ID获取DOM元素

框架 代码 次数/秒
Vanilla JS document.getElementById('test-table'); 12,137,211
Dojo dojo.byId('test-table'); 5,443,343
Prototype JS $('test-table') 2,940,734
Ext JS delete Ext.elCache['test-table']; Ext.get('test-table'); 997,562
jQuery $jq('#test-table'); 350,557
YUI YAHOO.util.Dom.get('test-table'); 326,534
MooTools document.id('test-table'); 78,802

根据标签名获取DOM元素

框架 代码 次数/秒
Vanilla JS document.getElementsByTagName("span"); 8,280,893
Prototype JS Prototype.Selector.select('span', document); 62,872
YUI YAHOO.util.Dom.getElementsBy(function(){return true;},'span'); 48,545
Ext JS Ext.query('span'); 46,915
jQuery $jq('span'); 19,449
Dojo dojo.query('span'); 10,335
MooTools Slick.search(document, 'span', new Elements); 5,457

代码示例

淡出元素

Vanilla JS

var s = document.getElementById('thing').style;s.opacity = 1;(function fade(){(s.opacity-=.1)<0?s.display="none":setTimeout(fade,40)})();

jQuery

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script><script>$('#thing').fadeOut();</script>

AJAX请求

Vanilla JS

var r = new XMLHttpRequest();r.open("POST", "path/to/api", true);r.onreadystatechange = function () {  if (r.readyState != 4 || r.status != 200) return;  alert("Success: " + r.responseText);};r.send("banana=yellow");

jQuery

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script><script>$.ajax({  type: 'POST',  url: "path/to/api",  data: "banana=yellow",  success: function (data) {    alert("Success: " + data);  },});</script>

vanilla-js官网:http://vanilla-js.com/


转载于:https://my.oschina.net/tonglei0429/blog/468209

Vanilla JS——最轻快的JavaScript框架相关推荐

  1. 使用Vanilla.js构建单页应用程序(SPA)网站

    目录 项目 带有模块的组织代码 以可观察的方式应对变化 支持声明式数据绑定 将幻灯片(Slides)托管和加载为"页面" 使用路由器处理导航 带有CSS3动画的转换时间线 管理&q ...

  2. 使用 Vanilla JavaScript 框架创建一个简单的天气应用

    大家好,不知道大家听说过 Vanilla JavaScript 这款框架吗?最近我在浏览国外的一些技术网站时,这个词出现的频率实在是太高了,好多框架都宣称自己是基于 Vanilla JavaScrip ...

  3. 用SVG和Vanilla JS框架创建一个“星形变心形”的动画效果

    在我写的这篇文章中, 讲述了如何用Vanilla JavaScript使动画顺滑的从一种状态过渡到另一种.最好先看下那篇文章,因为在这篇文章中我们要用到一些那篇文章中讲过的内容.例如例子的演示.各种时 ...

  4. Ember.js 1.0 RC6 发布,JavaScript 框架

    Ember.js 1.0 发布了第 6 个 RC 版本,下载地址:https://github.com/emberjs/ember.js/tree/v1.0.0-rc.6 该版本包含众多的改进记录,详 ...

  5. Next.js提供了基于React的简单通用JavaScript框架

    新的通用JavaScript框架Next.js目前已经开源了,它为基于React和服务器的Web应用提供了一个新的可选方案. \\ 来自Zeit的团队在React的基础和组件模型上构建了Next.js ...

  6. 轻量级的移动开发JavaScript框架-zepto.js

    Zepto.js  是移动端轻量级的JavaScript框架,实现JQuery的大部分API,针对手机上web开发,轻量级的是相对性的减少用户访问流量 Zepto官网 地址 可以到 github上下载 ...

  7. Vue.js(渐进式JavaScript框架)

    Vue.js(渐进式JavaScript框架) 渐进式:逐步实现新特性. Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架.它基于标准HTML.CSS ...

  8. Web前端:JS社区推荐的最佳JavaScript框架

    ​ 所有的JS框架都有自己的功能,React位居榜首,Vue.Js是最直接的前端框架之一,开发人员可以在其中轻松编写SPA应用程序. 这是相当明显的,JavaScript正在快速发展,探索当前更多的顶 ...

  9. JavaScript框架有哪些?JS框架汇总

    JavaScript是一种多范式语言,支持事件驱动,功能和命令式(包括面向对象和基于原型的)编程样式.JavaScript最初仅用于客户端.但是,如今,JavaScript也被用作服务器端编程语言.总 ...

最新文章

  1. C++中的虚函数表介绍
  2. Linux(CentOS 7_x64位)系统下安装Xmgrace
  3. 【10.9】multiprocessing多进程编程
  4. 给wxPython事件处理函数传递参数
  5. linux系统实用脚本,常用linux系统命令及简单小脚本
  6. 【渝粤教育】 广东开放大学 21秋期末考试组织行为学10068k2
  7. jsoup的Elements类
  8. python怎么读取中文文件-python: py2下 中文 的 文件读写 及 打印
  9. 七、【应用的主要框架】
  10. 开源中国 OsChina Android 客户端源码分析(12)清理缓存
  11. Anaconda下载安装与手动配置环境变量
  12. 最不可思议的职场语录
  13. FFmpeg 2 - ffplay、ffprobe、ffmpeg 命令使用
  14. Axure RP8从入门到精通手册
  15. 去天翎咨询myapps2.4的问题
  16. chrome自动代理检测(这玩意并没什么用,还会影响你访问某些网页)
  17. 90后马来西亚女孩闯华为
  18. PL(Procedural Language)/SQL程序设计语言
  19. H5中的history单页面,手动实现单页面开发,细说h5单页面原理
  20. 自然语言处理(三)——句法分析与依存句法分析

热门文章

  1. 【成长笔记】图片验证码识别
  2. 【知识点总结】数字电子技术(数电)
  3. TensorFlow 2.9的零零碎碎(五)-模型编译
  4. D. Serval and Rooted Tree
  5. 《计算之魂》1.11.2--阅读心得
  6. Django创建app应用和admin模块
  7. c/c++ 输入两个日期,计算日期相差多少天
  8. python播放url音频_从URL获取音频并播放i
  9. 浏览器被劫持如何恢复?
  10. Java自由虾旅行平台菜单功能