网站建设怎么样用javascript代替Jquery

来源:www.wcxywh.com │ 网站编辑:网站建设 │ 发表时间:2025-06-27 09:09

jQuery是目前最火爆的JavaScript工具库。

据统计,现在全世界57.3%的网站用它。也就是说,10个网站里面,有6个用jQuery。假如只考察用工具库的网站建设,这个比率就会上升到惊人的91.7%。

虽然jQuery这样受青睐,但它臃肿的体积也叫人头痛不已。jQuery 2.0的原始大小为235KB,优化后为81KB;若是支持IE6、7、8的jQuery 1.8.3,原始大小为261KB,优化后为91KB。

如此的体积,即便是宽带环境,完全加载也需要1秒或更长,更别说手机了。这意味着,假如你用了jQuery,用户至少延迟1秒,才能看到网页成效。考虑到本质上,jQuery只不过一个操作DOM的工具,大家不只要问:假如只不过为了几个网页特效,是不是有必要动用这么大的库?

2006年,jQuery诞生的时候,主要用于消除不同浏览器的差异(主如果IE6),为开发者提供一个简洁的统一接口。相比当时,现在的状况已经发生了非常大的变化。IE的市场份额不断降低,以ECMAScript为基础的JavaScript标准语法,正得到愈加广泛的支持。开发者直接用JavScript标准语法,就能同时在各大浏览器运行,不再需要通过jQuery获得兼容性。

下面就探讨怎么样用JavaScript标准语法,取代jQuery的一些主要功能,做到jQuery-free。

1、选取DOM元素

jQuery的核心是通过各种选择器,选中DOM元素,可以用querySelectorAll办法模拟这个功能。

var$=document.querySelectorAll.bind;

这里应该注意的是,querySelectorAll办法返回的是NodeList对象,它非常像数组(有数字索引和length属性),但不是数组,不可以用pop、push等数组特有办法。假如有需要,可以考虑将Nodelist对象转为数组。

myList=Array.prototype.slice.call;

2、DOM操作

DOM本身就具备非常丰富的操作办法,可以取代jQuery提供的操作办法。

尾部追加DOM元素。

//jQuery写法$.append); //DOM写法parent.appendChild

头部插入DOM元素。

//jQuery写法$.prepend); //DOM写法parent.insertBefore

删除DOM元素。

//jQuery写法$.remove //DOM写法child.parentNode.removeChild

3、事件的监听

jQuery的on办法,完全可以用addEventListener模拟。

Element.prototype.on=Element.prototype.addEventListener;

为了用便捷,可以在NodeList对象上也部署这个办法。

NodeList.prototype.on=function{ []['forEach'].call{ el.on; }); returnthis; };

4、事件的触发

jQuery的trigger办法则需要单独部署,相对复杂一些。

Element.prototype.trigger=function{ varevent=document.createEvent; event.initEvent; event.data=data||{}; event.eventName=type; event.target=this; this.dispatchEvent; returnthis; };

在NodeList对象上也部署这个办法。

NodeList.prototype.trigger=function{ []['forEach'].call{ el['trigger']; }); returnthis; };

5、document.ready

现在的最好实践,是将JavaScript脚本文件都放在页面底部加载。如此的话,其实document.ready办法(jQuery简写为$)已经非必要了,由于等到运行的时候,DOM对象已经生成了。

6、attr办法

jQuery用attr办法,读写网页元素的属性。

 $.attr;

DOM元素允许直接读取属性值,写法要简洁很多。

$.src="http://url/to/image";

应该注意,input元素的this.value返回的是输入框中的值,链接元素的this.href返回的是绝对URL。假如需要用到这两个网页元素的属性准确值,可以用this.getAttribute和this.getAttibute。

7、addClass办法

jQuery的addClass办法,用于为DOM元素添加一个class。

$.addClass;

DOM元素本身有一个可读写的className属性,可以用来操作class。

document.body.className='hasJS'; //ordocument.body.className+='hasJS';

HTML 5还提供一个classList对象,功能更强大(IE 9不支持)。

document.body.classList.add; document.body.classList.remove; document.body.classList.toggle; document.body.classList.contains;

8、CSS

jQuery的css办法,用来设置网页元素的样式。

$.css;

DOM元素有一个style属性,可以直接操作。

element.style.color="red";; //orelement.style.cssText+='color:red';

9、数据储存

jQuery对象可以储存数据。

$.data;

HTML 5有一个dataset对象,也有类似的功能(IE 10不支持),不过只能保存字符串。

element.dataset.user=JSON.stringify; element.dataset.score=score;

10、Ajax

jQuery的Ajax办法,用于异步操作。

$.ajax.done{ alert; });

大家可以概念一个request函数,模拟Ajax办法。

functionrequest{ varxhr=newXMLHttpRequest; if{ callback=opts; opts=null; } xhr.open; varfd=newFormData; if{ for{ fd.append); } } xhr.onload=function{ callback); }; xhr.send; }

然后,基于request函数,模拟jQuery的get和post办法。

varget=request.bind; varpost=request.bind;

十1、动画

jQuery的animate办法,用于生成动画成效。

$foo.animate;

jQuery的动画成效,非常大多数基于DOM。但现在,CSS 3的动画远比DOM强大,所以可以把动画成效写进CSS,然后通过操作DOM元素的class,来展示动画。

foo.classList.add;

假如需要对动画用回调函数,CSS 3也概念了相应的事件。

el.addEventListener; el.addEventListener;

十2、替代策略

因为jQuery体积过大,替代策略层出不穷。

其中,最有名的是zepto.js。它的设计目的是以最小的体积,做到最大兼容jQuery的API。zepto.js 1.0版的原始大小是55KB,优化后是29KB,gzip压缩后为10KB。

假如不求最大兼容,只期望模拟jQuery的基本功能,那样,min.js优化后只有200字节,而dolla优化后是1.7KB。

除此之外,jQuery本身使用模块设计,可以只选择用自己需要的模块。具体做法参见它的github网站,或者用专用的Web界面。



版权所有:建站宝盒
转载注明来源:网站建设怎么样用javascript代替Jquery
本文版权网址:http://www.wcxywh.com/zj/20250627/2251.html
标签:浙江网站建设 浙江浙江网站设计

上一篇:精确网站制作定位帮助企业精确推广与进步

下一篇:没有了

返回列表

热点新闻

网络营销网站开发服务建站公司品牌营销网站

品牌营销网站建设服务遂宁网站建设响应式网站

做网站企业大学网站建设网站建设哪家政府网站建设

娄底网站建设数字博物馆平面设计网站开发

智能步道网站主体架构国外网站制作商务网站设计

在线咨询
与我们取得联系
电话咨询
免费热线:133-65908-6482
微信咨询