移动浏览器项目WebApp需要jQuery吗

 我来答
以心gaawacce3c31
2013-11-03 · TA获得超过417个赞
知道答主
回答量:276
采纳率:98%
帮助的人:51万
展开全部
你真的需要它么?接下来我们谈谈你应该在移动设备上放弃jQuery的理由。为什么前端工程师需要在乎移动设备上的前端框架?众所周知,移动设备与固定装置最明显的一点不同是:带宽的问题。在移动设备上加载外部资源肯定要比固定装置设备加载外部资源要缓慢的多。我们将问题引向前端框架,jQuery最新版本的min版本为77KB,仅这一点就需要前端工程师折衷。jQuery中占了很大一个比重的则是Sizzle选择器,这是一个兼容多平台的javascript selector开源框架,但是在移动设备中我们真的不需要这个Sizzle选择器,另外一部分则是jQuery的动画类库,这个也是兼容多平台的动画类 库,但是在WebApp中,我们同样不需要,我们需要CSS 3的translate和animation即可完成需求,最后一个算是jQuery的OOP了,这个完全不需要,开发者完全可以根据自己的专业技能封装 一套OOP的方法。首先来看javascript selector我们做DHTML网站通常情况也都是对DOM做操作,jQuery可以说是一个非常轻巧且功能强大的灵活操作DOM的JavaScript框架,你在使用jQuery操作DOM时,就像是在玩魔术一样的神奇,这也正是jQuery的设计初衷。但是当前你的用户群是Iphone、Android、Ipad、Blackberry等等一些高端用户时,你不应该为了使用选择器而再引入这样一个庞大的JavaScript框架,你应该这样做:document.querySelector(DOM);复制代码querySelector是一个更容易、更快、更可靠的本地选择器引擎。你也可以利用3行代码封装一个像jQuery那样的函数来使用选择器�0�2�0�2function $(query) {�0�2�0�2�0�2 �0�2�0�2 �0�2return document.querySelectorAll(query);�0�2�0�2}复制代码这里就有你喜欢的$,仅仅3行代码就搞定了!你也许可能会问利用getElementById获取DOM会更加的快,这很不错。 getElementById方法获取DOM确实快些,但是这个方法适用于页面中元素较多的情况下,你才能够感觉到它的快感,但是WebApp是不可能在 同一张页面中有很多元素的,它不会像Web产品一样。所以在这里我不建议前端工程师为了这个感觉不到的快,而放弃使用 querySelectorAll/querySelector而使用getElementById重新封装。而且在实际的项目开发中,你也可以将获取到 的DOM保存在变量中,这样也同样减少了对DOM的访问。DOMReady Function当然,有些时候我们可能需要等待DOM加载完毕后才去执行我们的function。jQuery有ready方法,我们同样可以拥有自己我的ready方法。�0�2�0�2function ready (fn) {�0�2�0�2�0�2 �0�2�0�2�0�2document.addEventListener(‘DOMContentLoaded’, fn, false);�0�2�0�2}所以的函数的都将在DOM元素加载完毕后,立刻执行,这里不包括image|audio|video。�0�2�0�2ready(function (){�0�2�0�2�0�2 �0�2�0�2�0�2alert($(‘#demo’)[0].innerHTML);�0�2�0�2});复制代码可能你已经发现了,这样的ready方法并不是很灵活。首先你不能够卸载DOMContentLoaded事件,每调用ready方法,都会为 document注册DOMContentLoaded事件;其次当DOM加载完毕后,仅仅执行了一个函数的一次调用。这不是我们想要的,我们需要改进 它。�0�2�0�2var readyFuns = [];�0�2�0�2function DOMReady(){�0�2�0�2�0�2 �0�2�0�2�0�2for(var i=0,l=readyFuns.length;i
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式